Vue第10篇,Vue大屏中标签自动向上滚动动画(无缝滚动,vue大屏项目标签自动向上滚动动画)

简述:在Vue中实现一个大屏上的标签自动向上滚动的无缝动画,通常涉及到对列表元素的动态管理以及CSS动画或过渡效果的使用。这里来记录一下


Vue.js ~ 第 10 篇    ——    Vue大屏中标签自动向上滚动动画,无缝滚动

一. 原生VueJS实现

1. 首先定义标签,绑定属性

//动画标签
<div
    id="scro_box"
    ref="scrolls"
    :class="{ animations: animate == true }"
    @mouseenter="mEnter"
    @mouseleave="mLeave"
  >
              <div
                  class="scroll_item"
                  v-for="(item, index) in abnormity"
                  :key="index"
                >
                  {{ item}}
              </div>        
</div>

//相关css
.animations{
          transition: all 0.5s linear;
        }

2. 定义相关属性

data() {
    return {
      animate: false,//默认false  
      abnormity: [], //异常列表数据
    };
  },

3. 函数设置动画

//动画时间
mounted: function () {
    this.timer1 = setInterval(this.scrollTop, 1400);
}
    

// 标签向上滚动
    scrollTop() {
      var scrolls = this.$refs.scrolls;
      scrolls.style.marginTop = "-40px";
      this.animate = !this.animate;
      // 在异步函数中会出现this的偏移问题,此处一定要先保存好this的指向
      var that = this; 
      setTimeout(function () {
        that.abnormity.push(that.abnormity[0]);
        that.abnormity.shift();
        scrolls.style.marginTop = "0px";
        // 这个地方如果不把animate 取反会出现消息回滚的现象,
        that.animate = !that.animate;
      }, 500);
    },

//鼠标进入清除
   mEnter() {
      clearInterval(this.timer1); 
    },

//鼠标离开开启
   mLeave() {
      this.timer1 = setInterval(this.scrollTop, 1000); 
    },


二. 这里给大家推荐一款vue插件,也是无缝滚动,跟本文章实现效果相似

无缝滚动icon-default.png?t=N7T8https://blog.csdn.net/weixin_65793170/article/details/129388795?spm=1001.2014.3001.5501

感觉有用,就一键三连,感谢(●'◡'●)

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
要在Vue 3项目大屏实现列表自动滚动,可以使用以下步骤: 1. 在Vue 3项目,安装vue-scrollactive插件。可以使用以下命令进行安装: ``` npm install vue-scrollactive --save ``` 2. 在主要Vue组件的script标签,引入vue-scrollactive插件。例如: ``` import Scrollactive from 'vue-scrollactive'; ``` 3. 在Vue组件的template标签,使用vue-scrollactive的v-scrollactive指令,将列表元素包装在div。例如: ``` <div v-scrollactive="{offset: -200, duration: 500}"> <ul> <li>列表项1</li> <li>列表项2</li> <li>列表项3</li> <li>列表项4</li> </ul> </div> ``` 4. 在包装列表的div元素上,使用v-if指令,根据需要来控制列表的显示和隐藏。例如: ``` <div v-if="showList" v-scrollactive="{offset: -200, duration: 500}"> <ul> <li>列表项1</li> <li>列表项2</li> <li>列表项3</li> <li>列表项4</li> </ul> </div> ``` 5. 在Vue组件的methods,编写一个方法来控制列表的显示和隐藏,以及自动滚动。例如: ``` methods: { toggleList() { this.showList = !this.showList; if (this.showList) { setTimeout(() => { this.$refs.list.scrollIntoView({behavior: "smooth", block: "start", inline: "nearest"}); }, 500); } } } ``` 6. 在Vue组件的template标签,使用按钮或其他元素来调用方法。例如: ``` <button @click="toggleList()">显示/隐藏列表</button> ``` 通过以上步骤,就可以在Vue 3项目大屏实现列表自动滚动了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北城笑笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值