vue实现文字横向无缝走马灯组件效果的实例代码


Posted in Javascript onApril 09, 2019

marquee标签已经废弃了,只能手动实现文字走马灯样式

基于vue组件开发

<template>
 <div class="wrap"> // 外框,固定宽度
  <div id="box"> // 内部滚动框
   <div id="marquee">{{text}}</div> //展示的文字
   <div id="copy"></div> // 文字副本,为了实现无缝滚动
  </div>
  <div id="node">{{text}}</div> //为了获取text实际宽度
 </div>
</template>
<script>
export default {
 name: 'Marquee',
 props: ['lists'], // 父组件传入数据, 数组形式 [ "连雨不知春去","一晴方觉夏深"]
 data () {
  return {
   text: '' // 数组文字转化后的字符串
  }
 },
 methods: {
  move () {
// 获取文字text 的计算后宽度 (由于overflow的存在,直接获取不到,需要独立的node计算)
   let width = document.getElementById('node').getBoundingClientRect().width 
   let box = document.getElementById('box')
   let copy = document.getElementById('copy')
   copy.innerText = this.text // 文字副本填充
   let distance = 0 // 位移距离
//设置位移
   setInterval(function () { 
    distance = distance - 1
 // 如果位移超过文字宽度,则回到起点
    if (-distance >= width) {
     distance = 16
    }
    box.style.transform = 'translateX(' + distance + 'px)'
   }, 20) 
  }
 },
// 把父组件传入的arr转化成字符串
 mounted: function () {
  for (let i = 0; i < this.lists.length; i++) {
   this.text += ' ' + this.lists[i]
  }
 },
// 更新的时候运动
 updated: function () {
  this.move()
 }
}
</script>
<style scoped>
// 限制外框宽度,隐藏多余的部分
.wrap {
 overflow: hidden;
}
// 移动框宽度设置
#box {
 width: 80000%;
}
// 文字一行显示
#box div {
 float: left;
}
// 设置前后间隔
#marquee {
  margin: 0 16px 0 0;
}
// 获取宽度的节点,隐藏掉
#node {
 position: absolute;
 z-index: -999;
 top: -999999px;
}
</style>

父组件引入 import myMarquee from './my-marquee

使用并传参: <my-marquee :lists="lists"></my-marquee>

参数:

data (){
 return {
  lists: [
    '连雨不知春去',
    '一晴方觉夏深'
  ]
 }
}

总结

以上所述是小编给大家介绍的vue实现文字横向无缝走马灯组件效果的实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
优化JavaScript脚本的性能的几个注意事项
Dec 22 Javascript
JavaScript判断一个URL链接是否有效的实现方法
Oct 08 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
Nov 17 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
Nov 24 Javascript
AngularJS入门教程之链接与图片模板详解
Aug 19 Javascript
微信小程序 swiper组件详解及实例代码
Oct 25 Javascript
AngularJs 延时器、计时器实例代码
Sep 16 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
Oct 09 jQuery
vue计算属性时v-for处理数组时遇到的一个bug问题
Jan 21 Javascript
Vue微信项目按需授权登录策略实践思路详解
May 07 Javascript
详解使用mocha对webpack打包的项目进行&quot;冒烟测试&quot;的大致流程
Apr 27 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
Jul 30 Javascript
Angular脚手架开发的实现步骤
Apr 09 #Javascript
详解vue 自定义marquee无缝滚动组件
Apr 09 #Javascript
javascript实现手动点赞效果
Apr 09 #Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
Apr 09 #Javascript
浅谈Vue.js组件(二)
Apr 09 #Javascript
4 种滚动吸顶实现方式的比较
Apr 09 #Javascript
vue响应式系统之observe、watcher、dep的源码解析
Apr 09 #Javascript
You might like
如何写php守护进程(Daemon)
2015/12/30 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
用Node编写RESTful API接口的示例代码
2018/07/04 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
2019/01/21 Javascript
浅谈js闭包理解
2019/03/28 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
深入理解javascript prototype的相关知识
2019/09/19 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
Python使用xpath实现图片爬取
2020/09/16 Python
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
机械设计制造专业个人求职信
2013/09/25 职场文书
教师找工作推荐信
2013/11/23 职场文书
大学辅导员述职报告
2015/01/10 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
运动会报道稿大全
2015/07/23 职场文书
《我是什么》教学反思
2016/02/16 职场文书
导游词之千岛湖
2019/09/23 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python