vue框架下实现文字走马灯

html部分:

      <div class="lantern-text" ref="lanternTextBox">
        <p class="text text-front" ref="lanternTextFornt"></p>
        <p class="text text-behind" ref="lanternTextBehind"></p>
      </div>

style部分:

  .lantern-text {
        overflow: hidden;
        width: 80%;
        color: #5b6f8f;
        margin-left: 40px;
        position: relative;
        height: 100%;
      }   

      .text {
        white-space: nowrap;
        position: absolute;
        width: auto;
      }

      .text-front {
        animation: textFront linear;
      }

      .text-behind {
        animation: textBehind linear infinite;
        transform: translate(300px);
      }

JS部分:

    const { lanternTextFornt, lanternTextBehind, lanternTextBox } = this.$refs;
      const data = {text:‘请求的跑马灯内容.....‘};
      if(data && data.text) {
        lanternTextFornt.innerHTML = data.text;
        lanternTextBehind.innerHTML = data.text;
        const lanternBoxWidth = lanternTextBox.offsetWidth;     // 计算前一个运动时间
        const timeFornt = Math.round(lanternTextFornt.offsetWidth / 25);     // 计算后一个运动时间
        const timeBehind = Math.round((lanternTextFornt.offsetWidth + lanternBoxWidth) / 25);
        lanternTextFornt.style.animationDuration = `${timeFornt}s`;
        lanternTextBehind.style.animationDuration = `${timeBehind}s`;     // 后面一个动画延时时间
        lanternTextBehind.style.animationDelay = `${timeFornt}s`;      // 确保恒定速率 
        lanternTextBehind.style.transform = `translate(${lanternBoxWidth}px)`;
        lanternTextFornt.addEventListener(‘animationend‘, function() {
          lanternTextFornt.style.display = ‘none‘;
        })
      }

原文地址:https://www.cnblogs.com/chelse/p/11431031.html

时间: 2024-08-28 10:28:10

vue框架下实现文字走马灯的相关文章

Vue框架下的node.js安装教程

Vue框架下的node.js安装教程 python服务器.php  ->aphche.java ->tomcat.   iis -->它是一个可以运行JAVASCRIPTR 的运行环境 -->它可以作为后端语言(websocket \ ) --强大的包管理工具npm,可以使用它安装插件 -->VUE框架是基于node.js平台运行的 --->它是基于chrome浏览器的V8引擎,运行速度快,性能高效 安装淘宝镜像:npm install cnpm -g --regist

vue框架下实现字数过多隐藏,鼠标移入显示功能

vue框架下实现字数过多隐藏,鼠标移入显示功能 html: <em class="c-300" @mouseenter="dItem && dItem.length>0 ? mouseen($event):''">{{dItem.substring(3)}}</em> <em class="c-310 hidden" v-if="dItem && dItem.lengt

vue框架下,echarts图表外部容器宽度设置为百分比时内容超出容器以及echarts图表自适应的实现方案

在vue.js框架下,创建echarts图表,当图表的外部容器的宽度设置为百分比时,出现图表内容宽度超出其外部容器的情况,几番调试,得解决方案如下: (备注说明:问题产生的具体原因尚不清晰,后面若知晓了再补充,但是初期解决问题阶段一定不要钻牛角,不是一开始就能或者可以知道真理的) 在创建了echart对象之后,就调用一次echart的resize方法,同时,获取图表数据的方法应该是异步的,如果是初期调试模拟也要用setTimeout延迟一下,0秒即OK了. methods: { ...mapAc

vue框架下的组件化的购物车实现

最近在学习vue,然后了解到这个框架的一个突出特点就是组件化,所以用这种形式实现了一个购物车,因为在实际项目中,数量加减可能不只在购物车里用到,所以把这个小的效果也提取出来了,在实现过程中形成了很多坑,这里记录一下,希望对大家能有所帮助. tip1: 这里会用到使用的组件库是vux,  需要先安装(npm insatall vux --save   npm install vux-loader --save-dev),然后具体怎么使用,如果不清楚请去看vux官网. 我把列表和底部的全选计数分别写

理解vue实现原理,实现一个简单的Vue框架

参考: 剖析Vue实现原理 - 如何实现双向绑定mvvm Vue.js源码(1):Hello World的背后 Vue.js官方工程 本文所有代码可以在git上找到. 其实对JS我研究不是太深,用过很多次,但只是实现功能就算了.最近JS实在是太火,从前端到后端,应用越来越广泛,各种框架层出不穷,忍不住也想赶一下潮流. Vue是近年出的一个前端构建数据驱动的web界面的库,主要的特色是响应式的数据绑定,区别于以往的命令式用法.也就是在var a=1;的过程中,拦截'='的过程,从而实现更新数据,w

android:TextView实现文字走马灯效果(欺骗系统获取持久的焦点)

通常情况下我们想实现文字的走马灯效果需要在xml文件中这样设置 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="marquee" android:focusable="true" android:

Vue框架axios请求(类似于ajax请求)

Vue框架axios get请求(类似于ajax请求) 首先介绍下,这个axios请求最明显的地方,通过这个请求进行提交的时候页面不会刷新 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="vue.js"></scr

Vue框架的使用。

使用VUE首先需要下载安装一些列的环境. 第一步: 安装Node.js 下载并安装:node-v8.9.0-x64.msi 第二步: 安装Vue脚手架: cmd以管理员身份执行 npm install vue-cli -g 或者安装淘宝版 cnpm install vue-cli -g vue -V  查看是否安装成功 第三步: 创建项目: vue init webpack myProject  (项目名字) 提示内容: 然后初始化: vue init webpack myProject 第四步

vue框架开发出现白屏的解决方法汇总

利用vue框架写一个简单的新闻客户端,修改了部分配置重启项目后发现又白屏的情况.特此做个简单的汇总. 1.npm run build打包页面空白 发现页面head中引用的js和css文件是出现了路径错误,这里修改如下: 解决位置:config/index.js文件:把assetsPublicPath: '/'改为assetsPublicPath: './' 2. iOS的Safari下无法打开网页 webpack-dev-server >= 2.8.0 的版本在 iOS Safari 下无法打开