Vue替代marquee标签超出宽度文字横向滚动效果


Posted in Javascript onDecember 09, 2019

一、npm 安装

如果你想安装插件(自己写的)

安装

# install dependencies
npm i marquee-components

使用

在main.js引入

import marquee from 'marquee-components'
Vue.use(marquee );

在页面使用

<template>
 <div id="app">
    <marquee :val="msg"></marquee>
 </div>
</template>
<script>
export default {
 name: 'app',
 data () {
  return {
   msg: 'vuevuevuevuevuevuevuevuevuevuevuevuevuevuevuevuevue'
  }
 }
}
</script>

val后加文字即可,当超过文本容器长度时,触动横向滚动效果。

二、直接引入组件

marquee组件

<template>
 <div class="marquee-wrap">
  <div class="scroll">
   <p class="marquee">{{text}}</p>
   <p class="copy"></p>
  </div>
  <p class="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 = document.querySelector('.marquee-wrap').clientWidth
   let width = document.querySelector('.getWidth').scrollWidth
   if (width <= maxWidth) return
   let scroll = document.querySelector('.scroll')
   let copy = document.querySelector('.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: 16px;
 }
 p {
  word-break:keep-all;
  white-space: nowrap;
  font-size: 16px;
  font-family: "微软雅黑 Light";
 }
 .scroll {
  display: flex;
 }
 .getWidth {
  word-break:keep-all;
  white-space:nowrap;
  position: absolute;
  opacity: 0;
  top: 0;
 }
</style>

其他页面引入marquee组件

<template>
 <div class="container">
    <marquee :val="title"></marquee>
 </div>
</template>
<script>
import marquee from './marquee'
 name: 'index',
 components: {
  marquee
 },
 data () {
  return {
 title: ''
  }
 },
</script>

总结

以上所述是小编给大家介绍的Vue替代marquee标签超出宽度文字横向滚动效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
jquery选择器(常用选择器说明)
Sep 28 Javascript
jquery sortable的拖动方法示例详解
Jan 16 Javascript
动态读取JSON解析键值对的方法
Jun 03 Javascript
jquery隔行换色效果实现方法
Jan 15 Javascript
javascript如何操作HTML下拉列表标签
Aug 20 Javascript
jQuery原理系列-css选择器的简单实现
Jun 07 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
Mar 17 Javascript
JS闭包可被利用的常见场景小结
Apr 09 Javascript
Vue非父子组件通信详解
Jun 12 Javascript
ES6中Array.includes()函数的用法
Sep 20 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
Dec 12 Javascript
使用refresh_token实现无感刷新页面
Apr 26 Javascript
vue新建项目并配置标准路由过程解析
Dec 09 #Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
Dec 09 #Javascript
简述Vue中容易被忽视的知识点
Dec 09 #Javascript
vue路由传参三种基本方式详解
Dec 09 #Javascript
vue使用nprogress实现进度条
Dec 09 #Javascript
javascript数组元素删除方法delete和splice解析
Dec 09 #Javascript
vue vant Area组件使用详解
Dec 09 #Javascript
You might like
多重?l件?合查?(一)
2006/10/09 PHP
数据库查询记录php 多行多列显示
2009/08/15 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
php构造函数与析构函数
2016/04/23 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
JS实现下拉框的动态添加(附效果)
2013/04/03 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
以一段代码为实例快速入门Python2.7
2015/03/31 Python
Django在win10下的安装并创建工程
2017/11/20 Python
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
python学生管理系统
2019/01/30 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
下面关于"联合"的题目的输出是什么
2013/08/06 面试题
员工工作表扬信范文
2014/01/13 职场文书
便利店投资创业计划书
2014/02/08 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
珍惜资源的建议书
2014/08/26 职场文书
英文版辞职信
2015/02/28 职场文书
高二英语教学反思
2016/03/03 职场文书