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 相关文章推荐
jscript之Open an Excel Spreadsheet
Jun 13 Javascript
javascript 添加和移除函数的通用方法
Oct 20 Javascript
jQuery选择没有colspan属性的td的代码
Jul 06 Javascript
JQUERY设置IFRAME的SRC值的代码
Nov 30 Javascript
通过jQuery源码学习javascript(二)
Dec 27 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
Aug 28 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
Sep 23 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
May 25 Javascript
Node.JS文件系统解析实例详解
May 15 Javascript
记录vue项目中遇到的一点小问题
May 14 Javascript
vue 地图可视化 maptalks 篇实例代码详解
May 21 Javascript
javascript系统时间设置操作示例
Jun 17 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/06/06 PHP
PHP 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
jQuery简单创建节点的方法
2016/09/09 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
[01:08]DOTA2“血战之命”预告片
2017/08/12 DOTA
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
Python实现购物系统(示例讲解)
2017/09/13 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
C++面试题目
2013/06/25 面试题
初中政治教学反思
2014/01/17 职场文书
男方父母婚礼答谢词
2014/01/25 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
校长四风对照检查材料
2014/09/27 职场文书
滴水洞导游词
2015/02/10 职场文书
小学运动会入场口号
2015/12/24 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
MySQL kill不掉线程的原因
2021/05/07 MySQL
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle