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使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
vue watch监控对象的简单方法示例
Jan 07 Vue.js
vue自定义组件实现双向绑定
Jan 13 Vue.js
基于VUE实现简单的学生信息管理系统
Jan 13 Vue.js
vue使用lodop打印控件实现浏览器兼容打印的方法
Feb 07 Vue.js
Vue+Bootstrap实现简易学生管理系统
Feb 09 Vue.js
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
详解vue中v-for的key唯一性
May 15 Vue.js
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 Vue.js
vue使用Google Recaptcha验证的实现示例
Aug 23 Vue.js
vue 自定义的组件绑定点击事件
Apr 21 Vue.js
vue中data里面的数据相互使用方式
Jun 05 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下载文件的代码示例
2012/06/29 PHP
基于PHP对XML的操作详解
2013/06/07 PHP
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
使用node.js实现微信小程序实时聊天功能
2018/08/13 Javascript
ES6中Symbol、Set和Map用法详解
2019/08/20 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
python实现Floyd算法
2018/01/03 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
Python实现购物车购物小程序
2018/04/18 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
python获取交互式ssh shell的方法
2019/02/14 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
python3 sleep 延时秒 毫秒实例
2020/05/04 Python
虚拟机下载python是否需要联网
2020/07/27 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
2014年体检中心工作总结
2014/12/23 职场文书
酒店财务经理岗位职责
2015/04/08 职场文书
小学思想品德教学反思
2016/02/24 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
基于PostgreSQL/openGauss 的分布式数据库解决方案
2021/12/06 PostgreSQL
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers