vue实现广告栏上下滚动效果

时间:2021-09-22 18:00:16

本文实例为大家分享了vue实现广告栏上下滚动效果的具体代码,供大家参考,具体内容如下

html部分

?
1
2
3
4
5
6
7
8
9
10
11
<div class="roll">
 <img src="xxx.jpg" alt />
 <ul :class="{marquee_top:animate}">
  <li v-for="(item, index) in msg" :key="index">
   <span class="txtWrap">
    <span class="txt">{{item.name}}抢得商品{{item.goods}}</span>
    <span class="txt">已有123人申请</span>
   </span>
  </li>
 </ul>
</div>

js部分

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
data () {
 return {
 msg: [
    {
     name: '张**',
     goods: '牙膏'
    },
    {
     name: '王**',
     goods: '牙刷'
    },
    {
     name: '钟**',
     goods: '肥皂'
    }
   ],
  animate: false,
  setInTime:'' // 定时器
 }
 },
mounted:{
 this.setInTime = setInterval(this.showMarquee, 3000)
},
destroyed () {
  clearInterval(this.setInTime) // 页面销毁时清除定时器
 },
methods:{
 // 滚动栏滚动
  showMarquee () {
   this.animate = true
   setTimeout(() => {
    this.msg.push(this.msg[0])
    this.msg.shift()
    this.animate = false
   }, 500)
  },
}

关键css部分

?
1
2
3
4
.marquee_top {
   transition: all 0.5s;
   margin-top: -26px; /* 容器高度 */
}

效果:

vue实现广告栏上下滚动效果

(图中有个地方直接改变内容的为gif图片首尾相接部分)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/weixin_45140661/article/details/110089013