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 相关文章推荐
Javascript中的Split使用方法与技巧
Mar 09 Javascript
javascript 页面只自动刷新一次
Jul 10 Javascript
juqery 学习之六 CSS--css、位置、宽高
Feb 11 Javascript
json的前台操作和后台操作实现代码
Jan 20 Javascript
jQuery队列操作方法实例
Jun 11 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
Nov 02 Javascript
jQuery中triggerHandler()方法用法实例
Jan 19 Javascript
基于JavaScript实现添加到购物车效果附源码下载
Aug 22 Javascript
详解JS几种变量交换方式以及性能分析对比
Nov 25 Javascript
jQuery实现验证码功能
Mar 17 Javascript
使用jQuery和ajax代替iframe的方法(详解)
Apr 12 jQuery
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
May 22 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
QueryPath PHP 中的jQuery
2010/04/11 PHP
Php output buffering缓存及程序缓存深入解析
2013/07/15 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
javascript中的location用法简单介绍
2007/03/07 Javascript
jQuery 使用个人心得
2009/02/26 Javascript
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
让ie运行js时提示允许阻止内容运行的解决方法
2010/10/24 Javascript
Web开发之JavaScript
2012/03/29 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
layui实现数据表格点击搜索功能
2020/03/26 Javascript
element中的$confirm的使用
2020/04/26 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
python实现文件名批量替换和内容替换
2014/03/20 Python
Python 基础之字符串string详解及实例
2017/04/01 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
2014年办公室文秘工作总结
2014/12/09 职场文书
2015年质量月活动总结报告
2015/03/27 职场文书
考研英语辞职信
2015/05/13 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书
利用python进行数据加载
2021/06/20 Python
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python
德生2P3收音机开箱评测
2022/04/30 无线电