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实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
vue中watch的用法汇总
Dec 28 Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 Vue.js
vue-cli4.0多环境配置变量与模式详解
Dec 30 Vue.js
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
Vue全家桶入门基础教程
May 14 Vue.js
vue-cli4.5.x快速搭建项目
May 30 Vue.js
Vue如何清空对象
Mar 03 Vue.js
vue动态绑定style样式
Apr 20 Vue.js
关于vue-router-link选择样式设置
Apr 30 Vue.js
vue使用watch监听属性变化
Apr 30 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
更改localhost为其他名字的方法
2014/02/10 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
php实现有趣的人品测试程序实例
2015/06/08 PHP
javascript知识点收藏
2007/02/22 Javascript
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python3实现并发检验代理池地址的方法
2016/09/18 Python
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
python自动裁剪图像代码分享
2017/11/25 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
Python 将pdf转成图片的方法
2018/04/23 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
python yield和Generator函数用法详解
2020/02/10 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
Python decimal模块使用方法详解
2020/06/08 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
艺人经纪人岗位职责
2014/04/15 职场文书
银行求职信怎么写
2014/05/26 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
清洁工工作总结
2015/08/11 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书
基于Python实现流星雨效果的绘制
2022/03/18 Python