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 07 Vue.js
vue祖孙组件之间的数据传递案例
Dec 07 Vue.js
vue实现购物车的小练习
Dec 21 Vue.js
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
vue实现可移动的悬浮按钮
Mar 04 Vue.js
vue路由实现登录拦截
Mar 24 Vue.js
Vue项目中如何封装axios(统一管理http请求)
May 02 Vue.js
vue组件的路由高亮问题解决方法
May 11 Vue.js
Vue-Element-Admin集成自己的接口实现登录跳转
Jun 23 Vue.js
简单聊聊Vue中的计算属性和属性侦听
Oct 05 Vue.js
Vue3如何理解ref toRef和toRefs的区别
Feb 18 Vue.js
vue中div禁止点击事件的实现
Apr 02 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
用libTemplate实现静态网页的生成
2006/10/09 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
2011/03/29 PHP
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
jQuery实现删除li节点的方法
2016/12/06 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
chosen实现省市区三级联动
2018/08/16 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
简单通过settimeout看javascript的运行机制
2019/05/10 Javascript
js实现GIF图片的分解和合成
2019/10/24 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
python持久性管理pickle模块详细介绍
2015/02/18 Python
python使用KNN算法手写体识别
2018/02/01 Python
python实现宿舍管理系统
2019/11/22 Python
使用pygame写一个古诗词填空通关游戏
2019/12/03 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
Canvas 文本填充线性渐变的使用详解
2020/06/22 HTML / CSS
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
会计专业毕业生求职信分享
2014/01/03 职场文书
大学新生军训感言
2014/02/25 职场文书
竞聘演讲稿
2014/04/24 职场文书
政治学求职信
2014/06/03 职场文书
总经理任命书范本
2014/06/05 职场文书
培训研修方案
2014/06/06 职场文书
故意伤害罪辩护词
2015/05/21 职场文书
2015年社区反邪教工作总结
2015/10/14 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers