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项目利用axios请求接口下载excel
Nov 17 Vue.js
如何实现vue的tree组件
Dec 03 Vue.js
对vue生命周期的深入理解
Dec 03 Vue.js
Vue 组件注册全解析
Dec 17 Vue.js
vue 数据操作相关总结
Dec 17 Vue.js
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
Vue 事件的$event参数=事件的值案例
Jan 29 Vue.js
vue-cropper组件实现图片切割上传
May 27 Vue.js
Vue3.0写自定义指令的简单步骤记录
Jun 27 Vue.js
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
Vue Mint UI mt-swipe的使用方式
Jun 05 Vue.js
vue3 自定义图片放大器效果的示例代码
Jul 23 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
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
PHP强制转化的形式整理
2020/05/22 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
jQuery Mobile 导航栏代码
2013/11/01 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
JavaScript中reduce()的5个基本用法示例
2020/07/19 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
[02:42]2014DOTA2国际邀请赛 三冰专访:我会打到Ti20
2014/07/13 DOTA
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
打架检讨书2000字
2014/02/22 职场文书
求职信怎么写
2014/05/23 职场文书
文明旅游倡议书
2015/04/28 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
python实现局部图像放大
2021/11/17 Python