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 相关文章推荐
在textarea中显示html页面的javascript代码
Apr 20 Javascript
Display SQL Server Version Information
Jun 21 Javascript
该如何加载google-analytics(或其他第三方)的JS
May 13 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
May 24 Javascript
js 赋值包含单引号双引号问题的解决方法
Feb 26 Javascript
浅析Javascript中bind()方法的使用与实现
Apr 29 Javascript
node+express+ejs使用模版引擎做的一个示例demo
Sep 18 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
Dec 24 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
Oct 22 Javascript
小程序实现上下切换位置
Nov 16 Javascript
javascript实现左右缓动动画函数
Nov 25 Javascript
js实现鼠标切换图片(无定时器)
Jan 27 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中cookie的作用域
2008/03/27 PHP
php中的三元运算符使用说明
2011/07/03 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
JavaScript 计算图片加载数量的代码
2011/01/01 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
2014/12/31 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
javaScript中的原型解析【推荐】
2016/05/05 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
BootStrap树状图显示功能
2016/11/24 Javascript
hovertree插件实现二级树形菜单(简单实用)
2016/12/28 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
EsLint入门学习教程
2017/02/17 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
原生js实现点击轮播切换图片
2020/02/11 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
美国家居装饰店:Pier 1
2019/09/04 全球购物
Unix如何在一行中运行多个命令
2015/05/29 面试题
超市营业员岗位职责
2013/12/20 职场文书
2014年元旦活动方案
2014/02/15 职场文书
勾股定理课后反思
2014/04/26 职场文书
根叔历年演讲稿
2014/05/20 职场文书
家装业务员岗位职责
2015/04/03 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
MongoDB 常用的crud操作语句
2021/06/20 MongoDB