轮播效果(Vue)

  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.0">
  6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7 <title></title>
  8 <style>
  9 ul{
 10 list-style: none;
 11 overflow: hidden;
 12 display: inline-block
 13 }
 14 ul .img_li{
 15 width: 50px;
 16 height: 50px;
 17 float: left;
 18 background-color:aquamarine;
 19 margin: 0px,10px;
 20 text-align: center;
 21 color: aliceblue;
 22 }
 23 </style>
 24 <body>
 25  
 26 
 27 <!--
 28 标签里面是需要加{}
 29 而属性里面是不需要加的,直接是“”就可以取到相对应的值出来
 30  
 31 -->
 32 <div id="img_div" class="app01">
 33 <h1>{{msg}}</h1>
 34 <div>
 35  
 36 
 37 <!-- //:就是绑定src,@就是实时监听,这个是for循环,后面是加索引值,循环到哪一个图片 -->
 38 <img :src='imgsrc' @mouseenter='closeTimer' @mouseleave='openTimer'>
 39 <!-- 当鼠标在这个图片里面的话,这个就停止,当鼠标移除的时候,这个就开启图片轮播,enter。leave,进入,离开,鼠标进入,离开 -->
 40 <!--下面的for循环放在li里面也可以,放在ul里面有可以-->
 41 <ul v-for="(item,i) in items " >
 42 <li class="img_li" v-on:click='changepic(item)'>
 43 <!--这个里面的item可以传进去的,click事件是可以传参加进去的-->
 44 {{i}} 
 45 </li>
 46 </ul>
 47 <button @click='pre_pic()'>上一张</button>
 48 <button @click='next_pic()'>下一张</button>
 49 </div>
 50 </div>
 51 </div>
 52 
 53 
 54 
 55 
 56 
 57 
 58 <script type="text/javascript" src="vue.js"></script>
 59 <!-- //字典是通过.来取值的,而这个列表时通过【】来取值的 -->
 60 <script>
 61 var app=new Vue({
 62 el:'#img_div',
 63 data:{
 64 msg:"录播图例子",//里面是字典的形式,
 65 imgsrc:'1.jpg',
 66 imgindex:0,//索引值,当前的索引值
 67 items:[
 68 {id:1,src:'1.jpg' },
 69 {id:2,src:'2.jpg'},//for循环拿到这个里面的每一个元素,可以进行取值
 70 {id:3,src:'3.jpg'},
 71  
 72 
 73 ],
 74 timer:null,
 75 str:'<p>创建p标签</p>'
 76  
 77 
 78 },//都是字典的形式
 79 //注意,下面的created是自动设置时间,一定放在methods前面,否则不能自动
 80 created(){//这个created是自带的方法,自动轮播
 81  
 82 
 83 console.log('created')
 84 this.timer=setInterval(this.next_pic,2000)//自动轮播这个this.next_pic的函数
 85 },
 86 
 87 
 88 
 89 methods:{
 90 //下面的这个item就是你传过来的参数,当前点击的那个图片
 91 changepic:function(item){
 92 this.imgsrc=item.src
 93 },
 94 next_pic(){
 95  
 96 
 97 // this.imgindex++
 98 if (this.imgindex==this.items.length-1){
 99 this.imgindex=0
100  
101 
102 }
103 //但你点击了一下的时候,下面图片的索引值就加1
104 this.imgindex++
105 this.imgsrc=this.items[this.imgindex].src
106 },
107  
108 
109 pre_pic(){
110 if(this.imgindex==0){
111 this.imgindex=3}//的那个点击到最小的数的时候,索引值就变成3,下面在减去1就是2了,就是最大的字典的索引值
112  
113 this.imgindex--
114 this.imgsrc=this.items[this.imgindex].src
115  
116 
117 },
118 //下面是自动轮播这图片出来
119  
120 
121 //上面绑定的事件
122 closeTimer(){
123 clearInterval(this.timer);
124 //当悬浮在这个图片里面的时候,就清除这个自动轮播的效果
125 },
126 openTimer(){
127 this.timer=setInterval(this.next_pic,2000);
128 }
129 },
130  
131 
132 })
133 </script>
134 </body>
135 </head>
136 </html>
137  

 

posted @ 2018-10-28 03:32  风不再来  阅读(258)  评论(0编辑  收藏  举报