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 Ajax之load()方法
Oct 12 Javascript
javascript 不间断的图片滚动并可点击
Jan 15 Javascript
jquery获取div宽度的实现思路与代码
Jan 13 Javascript
两个listbox实现选项的添加删除和搜索
Mar 01 Javascript
jquery模拟LCD 时钟的html文件源代码
Jun 16 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
Sep 15 Javascript
提高Web性能的前端优化技巧总结
Feb 27 Javascript
JSON与js对象序列化实例详解
Mar 16 Javascript
JavaScript中var、let、const区别浅析
Jun 24 Javascript
javascript数组的定义及操作实例
Nov 10 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
Dec 18 Javascript
jquery检测上传文件大小示例
Apr 26 jQuery
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
介绍几个array库的新函数 php
2006/12/29 PHP
PHP 实现多服务器共享 SESSION 数据
2009/08/15 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
Yii配置文件用法详解
2014/12/04 PHP
浅谈php的优缺点
2015/07/14 PHP
用 JavaScript 迁移目录
2006/12/18 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
jQuery 获取多选框的值及多选框中文的函数
2016/05/16 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
微信小程序实现文件、图片上传功能
2020/08/18 Javascript
vue改变循环遍历后的数据实例
2019/11/07 Javascript
Python 正则表达式(转义问题)
2014/12/15 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
Pytorch加载部分预训练模型的参数实例
2019/08/18 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
2019/10/04 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
python进度条显示之tqmd模块
2020/08/22 Python
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
中学生学习生活的自我评价
2013/10/26 职场文书
先进集体事迹材料
2014/02/17 职场文书
十八届三中全会感言
2014/03/10 职场文书
2014年五四青年节活动策划书
2014/04/22 职场文书
物流专业求职信
2014/06/30 职场文书
超市开店计划书
2014/09/15 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
党校毕业个人总结
2015/02/28 职场文书
感谢信
2019/04/11 职场文书
银行求职信怎么写
2019/06/20 职场文书