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 设置 CSS 属性示例介绍
Jan 16 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
Jul 21 Javascript
jQuery的context属性用法实例
Dec 27 Javascript
推荐10 款 SVG 动画的 JavaScript 库
Mar 24 Javascript
JavaScript实现将文本框的值插入指定位置的方法
Aug 13 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
Feb 25 Javascript
jQuery Mobile 触摸事件实例
Jun 04 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
Dec 27 Javascript
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
Angular使用Restful的增删改
Dec 28 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
Mar 29 Javascript
微信小程序 setData 对 data数据影响问题
Apr 18 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
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
微信自定义分享php代码分析
2016/11/24 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
JQuery开发的数独游戏代码
2010/10/29 Javascript
jquery插件制作 手风琴Panel效果实现
2012/08/17 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
javascript History对象原理解析
2020/02/17 Javascript
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
深入解读Python解析XML的几种方式
2016/02/16 Python
Python分治法定义与应用实例详解
2017/07/28 Python
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
使用python获取(宜宾市地震信息)地震信息
2019/06/20 Python
python-序列解包(对可迭代元素的快速取值方法)
2019/08/24 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
幼儿园教学管理制度
2014/02/04 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
收银员岗位职责
2015/02/03 职场文书
银行自荐信范文
2015/03/25 职场文书
质量承诺书格式范文
2015/04/28 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers
浅谈@Value和@Bean的执行顺序问题
2021/06/16 Java/Android