Vue实现跑马灯样式文字横向滚动


Posted in Vue.js onNovember 23, 2021

本文实例为大家分享了Vue实现跑马灯样式文字横向滚动的具体代码,供大家参考,具体内容如下

需求:

在Vue项目的顶部,来实现文字左右滚动

步骤:

1、可以自己封装一个组件,也可以自己写,也可以复制以下代码
2、封装完成以后要在所需的组件中引入,注册,并使用

代码:

封装一个专门用来实现跑马灯效果的组件marquee组件

<template>
<!-- 跑马灯组件 -->
  <div class="marquee-wrap" ref="marquee-wrap">
    <div class="scroll" ref="scroll">
      <p class="marquee">{{text}}</p>
      <p class="copy" ref="copy"></p>
    </div>
    <p class="getWidth" ref="getWidth">{{text}}</p>
  </div>
</template>

<script>
export default {
  name: 'marquee',
  props: ['val'],
  data () {
    return {
      timer: null,
      text: ''
    }
  },
  created () {
    let timer = setTimeout(() => {
      this.move()
      clearTimeout(timer)
    }, 1000)
  },
  mounted () {
    for (let item of this.val) {
    this.text += item
    }
  },
  methods: {
    move () {
    let maxWidth = this.$refs['marquee-wrap'].clientWidth
    let width = this.$refs['getWidth'].scrollWidth
      if (width <= maxWidth) return
    let scroll = this.$refs['scroll']
    let copy = this.$refs['copy']
      copy.innerText = this.text
      let distance = 0 
      this.timer = setInterval(() => {
        distance -= 1
        if (-distance >= width) {
          distance = 16
        }
        scroll.style.transform = 'translateX(' + distance + 'px)'
      }, 20)
    }
  },
  beforeDestroy () {
    clearInterval(this.timer)
  }
}
</script>

<style scoped>
  .marquee-wrap {
    width: 100%;
    overflow: hidden;
    position: relative;
  }
  .marquee{
    margin-right: 0.16rem;
  }
  p {
    word-break:keep-all;
    white-space: nowrap;
    font-size: 0.28rem;
  }
  .scroll {
    display: flex;
  }
  .getWidth {
    word-break:keep-all;
    white-space:nowrap;
    position: absolute;
    opacity: 0;
    top: 0;
  }
</style>

在哪个组件中使用,就引入

// 引入跑马灯组件
import  marquee  from "@/components/marquee/marquee.vue";

引用并注册

export default {
  components: {
  // 注册跑马灯组件
    marquee,
  },
 }

注册完成以后接下来就是Html样式了,在template模板中使用这个组件

<Marquee class="realData">
          <ul class="fa-scroll-cont">
            <li v-for="item in realData" :key="item.name">
              <span class="roll-text">{{ item.city }}</span>
            </li>
          </ul>
</Marquee>

接下来就是效果图:
为了效果看的更明显多截了几张

Vue实现跑马灯样式文字横向滚动

Vue实现跑马灯样式文字横向滚动

Vue实现跑马灯样式文字横向滚动

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Vue.js 相关文章推荐
vue中echarts的用法及与elementui-select的协同绑定操作
Nov 17 Vue.js
vue实现两个区域滚动条同步滚动
Dec 13 Vue.js
浅析vue中的nextTick
Dec 28 Vue.js
vue实现一个获取按键展示快捷键效果的Input组件
Jan 13 Vue.js
vue实现可移动的悬浮按钮
Mar 04 Vue.js
SSM VUE Axios详解
Oct 05 Vue.js
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 Vue.js
vue实现Toast组件轻提示
Apr 10 Vue.js
vue3语法糖内的defineProps及defineEmits
Apr 14 Vue.js
vue3.0 数字翻牌组件的使用方法详解
Apr 20 Vue.js
vue elementUI批量上传文件
Apr 26 Vue.js
详解Vue的列表渲染
Nov 20 #Vue.js
详解Vue slot插槽
Nov 20 #Vue.js
详解Vue router路由
Nov 20 #Vue.js
vue中 this.$set的使用详解
如何用vue实现网页截图你知道吗
Vue3中的Refs和Ref详情
Nov 11 #Vue.js
详细聊聊vue中组件的props属性
You might like
php curl的深入解析
2013/06/02 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
javascript的函数
2007/01/31 Javascript
JS处理VBArray的函数使用说明
2008/05/11 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
js控制按钮,防止频繁点击响应的实例
2017/02/15 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
JS验证码实现代码
2017/09/14 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
解决elementui表格操作列自适应列宽
2020/12/28 Javascript
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
使用python根据端口号关闭进程的方法
2018/11/06 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
Python实现字符型图片验证码识别完整过程详解
2019/05/10 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
python 初始化一个定长的数组实例
2019/12/02 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
护士试用期自我鉴定
2014/02/08 职场文书
护士节策划方案
2014/05/19 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
格列夫游记读书笔记
2015/07/01 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
2016国培学习心得体会
2016/01/08 职场文书
如何在python中实现ECDSA你知道吗
2021/11/23 Python