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 相关文章推荐
QQ登录简单实现代码
Mar 09 Javascript
JQuery实现的在新窗口打开链接的方法小结
Apr 22 Javascript
浅析js中取绝对值的2种方法
Jul 09 Javascript
jquery购物车实时结算特效实现思路
Sep 23 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
Feb 25 Javascript
js实现扫雷小程序的示例代码
Sep 27 Javascript
JS实现的ajax和同源策略(实例讲解)
Dec 01 Javascript
element-ui使用导航栏跳转路由的用法详解
Aug 22 Javascript
javascript实现考勤日历功能
Nov 29 Javascript
js获取form表单中name属性的值
Feb 27 Javascript
layui自定义工具栏的方法
Sep 19 Javascript
JavaScript如何判断对象有某属性
Jul 03 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实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
2020/05/01 PHP
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
jquery移动节点实例
2015/01/14 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
浅谈python字典多键值及重复键值的使用
2016/11/04 Python
python写入已存在的excel数据实例
2018/05/03 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
python区分不同数据类型的方法
2019/10/14 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
Tensorflow使用Anaconda、pycharm安装记录
2020/07/29 Python
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
股东合作协议书
2014/04/14 职场文书
广告宣传策划方案
2014/05/21 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
Nginx反向代理学习实例教程
2021/10/24 Servers