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 相关文章推荐
5个最佳的Javascript日期处理类库分享
Apr 15 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
Feb 19 Javascript
60个很实用的jQuery代码开发技巧收集
Dec 15 Javascript
BootStrop前端框架入门教程详解
Dec 25 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
Jul 22 jQuery
微信小程序网络层封装的实现(promise, 登录锁)
May 08 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
Jun 20 Javascript
vue中uni-app 实现小程序登录注册功能
Oct 12 Javascript
微信小程序 生成携带参数的二维码
Oct 23 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
Jul 21 Javascript
javascript实现放大镜功能
Dec 09 Javascript
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
原生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连接MongoDB示例代码
2012/09/06 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
使用PHP开发留言板功能
2019/11/19 PHP
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
2013/08/07 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
javascript每日必学之运算符
2016/02/16 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
JS实现关键词高亮显示正则匹配
2018/06/22 Javascript
vue中element 上传功能的实现思路
2018/07/06 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
angular6的table组件开发的实现示例
2018/12/26 Javascript
vue使用原生swiper代码实例
2020/02/05 Javascript
python使用paramiko模块实现ssh远程登陆上传文件并执行
2014/01/27 Python
基于python时间处理方法(详解)
2017/08/14 Python
python得到单词模式的示例
2018/10/15 Python
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
Sneaker Studio乌克兰:购买运动鞋
2018/03/26 全球购物
绩效专员岗位职责
2013/12/02 职场文书
感恩寄语大全
2014/04/11 职场文书
挂职学习心得体会
2014/09/09 职场文书
行政执法队伍作风整顿剖析材料
2014/10/11 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
医德医风个人总结
2015/02/28 职场文书
大学入学感言
2015/08/01 职场文书
Python提取PDF指定内容并生成新文件
2021/06/09 Python