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 时间间隔计算的函数(间隔天数)
Nov 15 Javascript
js 实现菜单左右滚动显示示例介绍
Nov 21 Javascript
jQuery+easyui中的combobox实现下拉框特效
Feb 27 Javascript
基于BootStrap实现局部刷新分页实例代码
Aug 08 Javascript
AngularJS入门教程之双向绑定详解
Aug 18 Javascript
jquery 中toggle的2种用法详解(推荐)
Sep 02 Javascript
Javascript实现图片懒加载插件的方法
Oct 20 Javascript
JS获取多维数组中相同键的值实现方法示例
Jan 06 Javascript
js实现表格筛选功能
Jan 18 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
Dec 14 Javascript
vue.js自定义组件directives的实例代码
Nov 09 Javascript
koa2 数据api中间件设计模型的实现方法
Jul 13 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中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
ionic环境配置及问题详解
2017/06/27 Javascript
pm2 部署 node的三种方法示例
2017/10/20 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
vue视频播放插件vue-video-player的具体使用方法
2019/11/08 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
Python如何实现文本转语音
2016/08/08 Python
python基础教程项目二之画幅好画
2018/04/02 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
pymysql的简单封装代码实例
2020/01/08 Python
python一些性能分析的技巧
2020/08/30 Python
python从PDF中提取数据的示例
2020/10/30 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
重阳节活动总结
2014/08/27 职场文书
2016年寒假生活小结
2015/10/10 职场文书
高中生物教学反思
2016/02/20 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python