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 相关文章推荐
使用jQuery轻松实现Ajax的实例代码
Aug 16 Javascript
jQuery调用WebService的实现代码
Jun 19 Javascript
正则表达式搭配js轻松处理json文本方便而老古
Feb 17 Javascript
JavaScript判断是否为数组的3种方法及效率比较
Apr 01 Javascript
学习JavaScript设计模式(链式调用)
Nov 26 Javascript
bootstrap3 兼容IE8浏览器!
May 02 Javascript
[原创]jQuery常用的4种加载方式分析
Jul 25 Javascript
基于Vue实现支持按周切换的日历
Sep 24 Javascript
Vue中的v-for循环key属性注意事项小结
Aug 12 Javascript
postman自定义函数实现 时间函数的思路详解
Apr 17 Javascript
jQuery+ajax实现批量删除功能完整示例
Jun 06 jQuery
three.js利用gpu选取物体并计算交点位置的方法示例
Nov 25 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执行速度全攻略
2006/10/09 PHP
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
2018/02/09 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
2020/07/15 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
Python Grid使用和布局详解
2018/06/30 Python
从numpy数组中取出满足条件的元素示例
2019/11/26 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
python 实现二维列表转置
2019/12/02 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
数据库连接池的工作原理
2012/09/26 面试题
学生会招新策划书
2014/02/14 职场文书
欢迎领导检查标语
2014/06/27 职场文书
学校创先争优活动总结
2014/08/28 职场文书
合作经营协议书范本
2014/09/16 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
婚姻出轨保证书
2015/05/08 职场文书
Node实现搜索框进行模糊查询
2021/06/28 Javascript
python中的sys模块和os模块
2022/03/20 Python
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL