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 相关文章推荐
js(jQuery)获取时间的方法及常用时间类搜集
Oct 23 Javascript
jQuery前端分页示例分享
Feb 10 Javascript
高性能JavaScript 重排与重绘(2)
Aug 11 Javascript
Bootstrap所支持的表单控件实例详解
May 16 Javascript
Javascript 实现计算器时间功能详解及实例(二)
Jan 08 Javascript
微信小程序 实例开发总结
Apr 26 Javascript
详解node child_process模块学习笔记
Jan 24 Javascript
vue中引用阿里字体图标的方法
Feb 10 Javascript
解决webpack无法通过IP地址访问localhost的问题
Feb 22 Javascript
详解angular脏检查原理及伪代码实现
Jun 08 Javascript
微信小程序实现底部导航
Nov 05 Javascript
JS工厂模式开发实践案例分析
Oct 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
B2K与车机的中波PK
2021/03/02 无线电
PHP新手上路(二)
2006/10/09 PHP
FCKeditor的安装(PHP)
2007/01/13 PHP
php下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
js打印纸函数代码(递归)
2010/06/18 Javascript
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
JQuery插件开发示例代码
2013/11/06 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
使用vue构建一个上传图片表单
2017/07/04 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
Python设计实现的计算器功能完整实例
2017/08/18 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
python实现密码强度校验
2020/03/18 Python
python绘制趋势图的示例
2020/09/17 Python
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
库存图片、照片、矢量图、视频和音乐:Shutterstock
2021/02/12 全球购物
C语言开发工程师测试题
2016/12/20 面试题
家长评语大全
2014/01/22 职场文书
教师演讲稿大全
2014/05/16 职场文书
共青团员自我评价范文
2014/09/14 职场文书
初中家长评语和期望
2014/12/26 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
《颐和园》教学反思
2016/02/19 职场文书
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB
sqlserver连接错误之SQL评估期已过的问题解决
2022/03/23 SQL Server