zoukankan      html  css  js  c++  java
  • 用Vue实现一个简单的轮播效果 及 音乐播放列表

    Vue实现简单的轮播效果,用的的一些常用系统指令:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
       <script src="../static/vue.js"></script>
        <title>Title</title>
        <style>
    
            .turn{
                width: 600px;
                margin:0 auto;
            }
            ul{
                width: 300px;
                margin: 0 auto;
                overflow: hidden;
                list-style: none;
            }
            ul li{
                float: left;
                width: 30px;
                height: 30px;
                background-color: hotpink;
                margin-left: 10px;
                line-height: 30px;
                text-align: center;
                color: white;
            }
        </style>
    </head>
    <body>
    <div id="app" class="turn">
        <img :src="currentSrc" @mouseenter="closeTime" @mouseleave="openTime">
    
    
        <ul>
            <a><li v-for = "(item,i) in imgArr" @click="currentChange(item)" >{{ i+1 }}</li></a>
        </ul>
        <button @click="lastImg">上一张</button>
        <button @click="nextImg">下一张</button>
    </div>
    
    <script>
        let adc =new Vue({
            el:"#app",
            data:{
                currentSrc:"../static/picture/1.png",
                imgArr:[
                    {id:1,src:"../static/picture/1.png"},
                    {id:2,src:"../static/picture/2.jpg"},
                    {id:3,src:"../static/picture/3.jpeg"},
                    {id:4,src:"../static/picture/4.jpg"},
                    {id:5,src:"../static/picture/5.jpg"},
                    {id:6,src:"../static/picture/6.jpg"},
                ],
                imgIndex:0,
                timer:null,
            },
            created(){
                this.timer= setInterval(this.nextImg,2000)
            },
            computed:{
                reverseStr:{
                    set:function (newValue) {
    
                    },
                    get:function () {
    
                    }
                }
            },
            methods:{
                currentChange(item){
                    this.currentSrc=item.src;
    
                },
                lastImg(){
                    if(this.imgIndex==0){
                        this.imgIndex=this.imgArr.length
                    }
                    this.imgIndex--;
                    this.currentSrc=this.imgArr[this.imgIndex].src
    
                },
                nextImg(){
                    if(this.imgIndex==this.imgArr.length-1){
                        this.imgIndex=-1
    
                    }
                    this.imgIndex++;
                    this.currentSrc=this.imgArr[this.imgIndex].src
                },
                closeTime(){
                    clearInterval(this.timer);
                },
                openTime(){
                    this.timer=setInterval(this.nextImg,2000);
                }
            }
    
        })
    </script>
    </body>
    </html>

     简单的音乐播放列表:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta name="viewport" content="width=device-width, initial-scale=1">
     6    <script src="../static/vue.js"></script>
     7     <title>Title</title>
     8     <style>
     9         ul{
    10           list-style: none;
    11         }
    12         li{
    13             border-bottom: 1px solid gray;
    14         }
    15     </style>
    16 </head>
    17 <body>
    18 
    19 <div id="mplay">
    20     <audio :src="currSong" autoplay="" controls="" @ended="nextSong"></audio>
    21     <ul>
    22         <li v-for="(item,index) in songs">
    23             <button @click="play(index)">歌曲:{{ item.song }}</button>
    24             <p>作者:{{ item.author }}</p>
    25         </li>
    26     </ul>
    27     <button @click="addSong">添加歌曲</button>
    28 
    29 </div>
    30 
    31 <script>
    32     let songList=[
    33                 {song:"星月神话.mp3",author:"董敏",src:"../static/muscis/星月神话.mp3"},
    34                 {song:"九张机.mp3",author:"叶清炫",src:"../static/muscis/九张机.mp3"},
    35                 {song:"红颜旧.mp3",author:"刘涛",src:"../static/muscis/红颜旧.mp3"},
    36                 {song:"赤血长殿.mp3",author:"王凯",src:"../static/muscis/赤血长殿.mp3"},
    37                 {song:"风吹麦浪.mp3",author:"李建",src:"../static/muscis/风吹麦浪.mp3"},
    38                 {song:"恋人心.mp3",author:"魏新雨",src:"../static/muscis/恋人心.mp3"},
    39 
    40             ];
    41     let mpc=new Vue({
    42         el:"#mplay",
    43         data:{
    44             songs:songList,
    45             //defaultSong:"../static/muscis/星月神话.mp3",
    46             indexSong:0,
    47         },
    48         methods:{
    49             play(index){
    50                 this.indexSong=index
    51             },
    52             nextSong(){
    53                 if (indexSong==songs.length-1){
    54                     this.indexSong=-1;
    55                 }
    56                 this.indexSong++;
    57                 //this.defaultSong=this.songs[this.indexSong].src;
    58             },
    59             addSong(){
    60                 this.songs.push({song:"小酒窝.mp3",author:"林俊杰",src:"../static/muscis/小酒窝.mp3"});
    61             }
    62         },
    63         computed:{
    64             //生命周期时使用
    65             currSong(){
    66             console.log(111);
    67                 return this.songs[this.indexSong].src
    68             }
    69         }
    70 
    71     })
    72 </script>
    73 </body>
    74 </html>
  • 相关阅读:
    第二章--MYSQL体系结构和管理
    第一章 -- MySQL简介及安装
    CentOS 7.5静默安装oracle 11g
    tomcat日志
    配置常用远程源
    mybatis与ibatis--个人总结。
    单纯的简单的ibatis
    一些缩写词
    单纯的简单的mybatis有注解
    单纯的简单的mybatis无注解
  • 原文地址:https://www.cnblogs.com/wen-kang/p/9959037.html
Copyright © 2011-2022 走看看