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 相关文章推荐
php上传图片并给图片打上透明水印的代码
Jun 07 Javascript
js实现单一html页面两套css切换代码
Apr 11 Javascript
js中this的用法实例分析
Jan 10 Javascript
angularJS 中input示例分享
Feb 09 Javascript
js判断当前页面用什么浏览器打开的方法
Jan 06 Javascript
多种js图片预加载实现方式分享
Feb 19 Javascript
学习Javascript面向对象编程之封装
Feb 23 Javascript
Json解析的方法小结
Jun 22 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
Sep 13 Javascript
js实现图片上传即时显示效果
Sep 30 Javascript
vue 解决文本框被键盘遮住的问题
Nov 06 Javascript
如何在vue中使用jointjs过程解析
May 29 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中使用imagick生成PSD文件缩略图教程
2015/01/26 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
JavaScript常用代码书写规范的超全面总结
2016/09/11 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
JS解决移动web开发手机输入框弹出的问题
2017/03/31 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
2018/03/08 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
jQuery实现王者荣耀手风琴效果
2020/01/17 jQuery
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
Python生成随机数组的方法小结
2017/04/15 Python
python和opencv实现抠图
2018/07/18 Python
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
python基于opencv 实现图像时钟
2021/01/04 Python
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
Linux文件系统类型
2012/09/16 面试题
出纳试用期自我鉴定
2014/04/07 职场文书
环保标语口号
2014/06/13 职场文书
工会优秀工作者事迹
2014/08/17 职场文书
2014年党员干部四风问题自我剖析材料
2014/09/29 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
六年级作文之家庭作文
2019/12/12 职场文书