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的分页控件(C#)
Jan 06 Javascript
JQuery设置和去除disabled属性的5种方法总结
May 16 Javascript
JavaScript实现QueryString获取GET参数的方法
Jul 02 Javascript
js识别uc浏览器的代码
Nov 06 Javascript
Javascript面试经典套路reduce函数查重
Mar 23 Javascript
node.js中express-session配置项详解
May 31 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
Jul 22 jQuery
深入理解React中何时使用箭头函数
Aug 23 Javascript
json2.js 入门教程之使用方法与实例分析
Sep 14 Javascript
webpack写jquery插件的环境配置
Dec 21 jQuery
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
Nov 05 Javascript
JS实现页面侧边栏效果探究
Jan 08 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
php设计模式之观察者模式的应用详解
2013/05/21 PHP
深入php数据采集的详解
2013/06/02 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
php 批量查询搜狗sogou代码分享
2015/05/17 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
elementUI table表格动态合并的示例代码
2019/05/15 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
vue内置组件component--通过is属性动态渲染组件操作
2020/07/28 Javascript
Python中内置数据类型list,tuple,dict,set的区别和用法
2015/12/14 Python
Python正规则表达式学习指南
2016/08/02 Python
Python中元组,列表,字典的区别
2017/05/21 Python
Python中的__slots__示例详解
2017/07/06 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
python操作kafka实践的示例代码
2019/06/19 Python
python中对数据进行各种排序的方法
2019/07/02 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
Python学习笔记之装饰器
2020/08/06 Python
Python通过队列来实现进程间通信的示例
2020/10/14 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
STAY JAPAN台湾:预订日本民宿
2018/07/22 全球购物
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
《落花生》教学反思
2014/02/25 职场文书
高三高考决心书
2014/03/11 职场文书
2014民事授权委托书范本
2014/09/29 职场文书
关于长城的导游词
2015/01/30 职场文书
Python中itertools库的四个函数介绍
2022/04/06 Python
Python中re模块的元字符使用小结
2022/04/07 Python
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js