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 相关文章推荐
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
Nov 25 Javascript
百度地图api应用标注地理位置信息(js版)
Feb 01 Javascript
JS图片根据鼠标滚动延时加载的实例代码
Jul 13 Javascript
js编码、解码函数介绍及其使用示例
Sep 05 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
Aug 22 Javascript
jQuery表单验证插件解析(推荐)
Jul 21 Javascript
JS简单实现tab切换效果的多窗口显示功能
Sep 07 Javascript
js初始化验证实例详解
Nov 26 Javascript
es6系列教程_ Map详解以及常用api介绍
Sep 25 Javascript
原生JS写Ajax的请求函数功能
Dec 22 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
Nov 26 jQuery
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
May 12 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访问Google Search API的方法
2015/03/05 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
JavaScript基础语法让人疑惑的地方小结
2012/05/23 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
js的alert弹出框出现乱码解决方案
2013/09/02 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
利用js实现禁止复制文本信息
2015/06/03 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
echarts多条折线图动态分层的实现方法
2019/05/24 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
js实现3D旋转效果
2020/08/18 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
django ajax发送post请求的两种方法
2020/01/05 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
win10安装python3.6的常见问题
2020/07/01 Python
基于HTML5代码实现折叠菜单附源码下载
2015/11/27 HTML / CSS
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
实习期自我鉴定
2013/10/11 职场文书
个人主要事迹材料
2014/08/26 职场文书
2014年班主任德育工作总结
2014/12/05 职场文书
首都博物馆观后感
2015/06/05 职场文书
入党申请书怎么写?
2019/06/21 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技