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 相关文章推荐
JS解析json数据并将json字符串转化为数组的实现方法
Dec 25 Javascript
javascript页面动态显示时间变化示例代码
Dec 18 Javascript
js实现简单秒表走动的时钟特效
Mar 25 Javascript
JS实现的最简Table选项卡效果
Oct 14 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
Dec 02 Javascript
纯JS代码实现隔行变色鼠标移入高亮
Nov 23 Javascript
微信小程序 引用其他js文件实现代码
Feb 22 Javascript
关于jQuery库冲突的完美解决办法
May 20 jQuery
实例详解vue.js浅度监听和深度监听及watch用法
Aug 16 Javascript
Vue实现数据表格合并列rowspan效果
Nov 30 Javascript
javascript随机变色实例代码
Oct 15 Javascript
vue el-table实现递归嵌套的示例代码
Aug 14 Vue.js
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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
php面象对象数据库操作类实例
2014/12/02 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
Python使用面向对象方式创建线程实现12306售票系统
2015/12/24 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
python编写微信远程控制电脑的程序
2018/01/05 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
2018/02/18 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
浅谈Python的list中的选取范围
2018/11/12 Python
Python补齐字符串长度的实例
2018/11/15 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
python实现俄罗斯方块游戏(改进版)
2020/03/13 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
机械系大学毕业生推荐信
2013/11/27 职场文书
2014年三八妇女节活动总结
2014/03/01 职场文书
道路交通安全实施方案
2014/03/12 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
不忘国耻振兴中华演讲稿
2014/05/14 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
安全第一课观后感
2015/06/18 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
周一问候语大全
2015/11/10 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
Java并发编程之详解CyclicBarrier线程同步
2021/06/23 Java/Android