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获取QueryString的方法小结
Feb 28 Javascript
js检测输入内容全为空格的方法
May 03 Javascript
jQuery中is()方法用法实例
Jan 06 Javascript
javascript控制台详解
Jun 25 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
Aug 31 Javascript
Bootstrap源码学习笔记之bootstrap进度条
Dec 24 Javascript
js通过指定下标或指定元素进行删除数组的实例
Jan 12 Javascript
解决iview打包时UglifyJs报错的问题
Mar 07 Javascript
微信小程序实现单选功能
Oct 30 Javascript
Vue数字输入框组件的使用方法
Oct 19 Javascript
使用Node.js实现base64和png文件相互转换的方法
Mar 11 Javascript
javascript函数式编程基础
Sep 15 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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
深入PHP curl参数的详解
2013/06/17 PHP
深入解析PHP中的(伪)多线程与多进程
2013/07/01 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
javascript 程序库的比较(一)之DOM功能
2010/04/07 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
2014/12/29 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
TensorFlow实现简单的CNN的方法
2019/07/18 Python
python 默认参数相关知识详解
2019/09/18 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
Python3.9新特性详解
2020/10/10 Python
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
智能旅行箱:Horizn Studios
2018/04/30 全球购物
英国电子专家:maplin
2019/09/04 全球购物
一道写SQL的面试题和答案
2013/11/19 面试题
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
出纳岗位职责模板
2013/11/27 职场文书
年度考核评语
2014/01/19 职场文书
酒后驾驶检讨书
2014/01/27 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
党员争先创优承诺书
2015/01/20 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis
Windows11插耳机没反应怎么办? win11耳机没声音的多种解决办法
2021/11/21 数码科技
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python