vue实现公告栏文字上下滚动效果的示例代码


Posted in Javascript onJune 16, 2020

本文详细的介绍了vue实现公告栏文字上下滚动效果的示例代码,分享给大家,具体入如下:

代码实现:

在项目结构的components中新建text-scroll.vue文件

<template>
 <div class="text-container">
  <transition class="" name="slide" mode="out-in">
   <p class="text" :key="text.id">{{text.val}}</p>
  </transition>
 </div>
</template>

<script>

export default {
 name: 'TextScroll',
 props: {
 dataList: {
  type: Array,
  default() {
  return [];
  },
 },
 },
 data() {
 return {
  count: 0, // 当前索引
  intervalId: null, // 定时器ID
  playTime: 2000, // 定时器执行间隔
 };
 },
 computed: {
 text() {
  return {
  id: this.count,
  val: this.dataList[this.count],
  };
 },
 },
 created() {
 this.intervalId = setInterval(() => { // 定义定时器
  this.getText();
 }, this.playTime);
 },
 methods: {
 getText() {
  const len = this.dataList.length; // 获取数组长度
  if (len === 0) {
  return; // 当数组为空时,直接返回
  }
  if (this.count === len - 1) { // 当前为最后一个时
  this.count = 0; // 从第一个开始
  } else {
  this.count++; // 自增
  }
 },
 },
 destroyed() {
 clearInterval(this.intervalId); // 清除定时器
 },
};
</script>

<style scoped>
.text-container{
 font-size: 14px;
 color: #F56B6B;
 margin-right: 20px;
 height: 60px;
}

.text {
 text-align: right;
 margin: auto 0;
}

.slide-enter-active, .slide-leave-active {
 transition: all 1s;
}

.slide-enter{
 transform: translateY(40px);
}

.slide-leave-to {
 transform: translateY(-40px);
}
</style>

在header-bar组件使用

<text-scroll :dataList="noticeList"></text-scroll>

 分析

transition标签

vue实现公告栏文字上下滚动效果的示例代码

这里是动态组件

官方文档:https://cn.vuejs.org/v2/guide/transitions.html

为什么用setInterval,而不是setTimeout

setInterval是循环执行,setTimeout是延迟执行。我们这里要的是setTimeout循环执行。通过嵌套setTimeout可以实现循环,但是每次都会注册一个计时器,然后时间上也是需要等当前setTimeout执行完再延迟比如说两秒执行,实际上就不只2s。

什么情况下setTimeout嵌套可以解决 setInterval 解决不了的问题 当计时器是高耗时的计算或者dom操作时,时间大于延迟时间

 到此这篇关于vue实现公告栏文字上下滚动效果的示例代码的文章就介绍到这了,更多相关vue 公告栏文字上下滚动 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js操作ajax返回的json的注意问题!
Feb 23 Javascript
js实现图片点击左右轮播
Jul 08 Javascript
基于jQuery实现的扇形定时器附源码下载
Oct 20 Javascript
实例详解AngularJS实现无限级联动菜单
Jan 15 Javascript
JS原型链怎么理解
Jun 27 Javascript
js实现HashTable(哈希表)的实例分析
Nov 21 Javascript
JavaScript callback回调函数用法实例分析
May 08 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
Nov 02 Javascript
vue返回上一页面时回到原先滚动的位置的方法
Dec 20 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
Apr 17 Javascript
vue-cli4项目开启eslint保存时自动格式问题
Jul 13 Javascript
node.js爬虫框架node-crawler初体验
Oct 29 Javascript
原生JS实现无缝轮播图片
Jun 24 #Javascript
如何利用Node.js与JSON搭建简单的动态服务器
Jun 16 #Javascript
js+css实现全屏侧边栏
Jun 16 #Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
Jun 15 #Javascript
通过实例解析JavaScript for in及for of区别
Jun 15 #Javascript
vue proxy 的优势与使用场景实现
Jun 15 #Javascript
原生JS利用transform实现banner的无限滚动示例代码
Jun 15 #Javascript
You might like
基于php实现长连接的方法与注意事项的问题
2013/05/10 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
node.js发送邮件email的方法详解
2017/01/06 Javascript
Canvas实现放射线动画效果
2017/02/15 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python 文件读写操作实例详解
2014/03/12 Python
Python多线程爬虫简单示例
2016/03/04 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
Python正则表达式指南 推荐
2018/10/09 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
Python 在局部变量域中执行代码
2020/08/07 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
缴纳养老保险的证明
2014/01/10 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL