一、前言


如上图所示,左边固定两个图标,右边固定一个图标,中间内容滚动,但是注意,一般的UI框架是提供滚动组件的,但是为什么要自己实现,主要是因为一般的UI组件不提供文字无缝连接,什么意思,假设滚动文字为:别人都知道我是一个超级无敌帅哥。一般的UI组件:等到无敌帅哥滚动玩,别人才会出现,所以就出现了一段空白,而我们的需求是,滚动到无敌帅哥之后,后面接上了别人都知道,无缝连接继续滚动,因为CSDN上传视频上传不了,就离谱,就简单描述了一下。

二、实现

notice.vue(滚动组件)

<template><div class="notice"><div class="notice-img"><img class="notice-img1" src="@/assets/image/notice1.png" /><img class="notice-img2" src="@/assets/image/notice2.png" /></div><div class="notice-wrap"><p>{{ notify }}</p><p class="notice-copy"></p></div><p class="notice-getWidth">{{ notify }}</p><div class="notice-img notice-image"><img class="notice-img3" src="@/assets/image/rightarrow_more.png" /></div></div>
</template>
<script>
export default {name: "Notice",props: ["notify"],data() {return{timer: null} },methods: {move() {let maxWidth = document.querySelector(".notice").clientWidth;let width = document.querySelector(".notice-getWidth").scrollWidth;if(width<maxWidth) returnlet scroll = document.querySelector(".notice-wrap");let copy = document.querySelector('.notice-copy');copy.innerText = this.notifylet distance = 0; // 位移距离this.timer = setInterval(() => {distance -= 1;if(-distance  >= width) {// 如果位移超过文字宽度,则回到起点distance = 14; // 与滚动字体保持一直就行}scroll.style.transform = `translateX(${distance}px)`},20)},},beforeDestroy() {debuggerif(this.timer) {clearInterval(this.timer)}},watch: {notify(newVal) {if (newVal) {const _this = thislet timer = setTimeout(() => {_this.move();clearTimeout(timer);}, 1000);}},},
};
</script>
<style lang="scss" scoped>
.notice {display: flex;overflow: hidden;position: relative;height: 108px;border-top: 14px solid #f0f0f0;border-bottom: 14px solid #f0f0f0;font-size: 14PX;.notice-img {display: flex;align-items: center;position: relative;z-index: 2;background: #fff;.notice-img1 {width: 30px;height: 32px;margin-left: 24px;margin-right: 16px;}.notice-img2 {width: 100px;height: 40px;margin-right: 12px;}.notice-img3 {width: 17px;height: 34px;}}.notice-image{width: 100px;justify-content: center;}.notice-wrap {display: flex;align-items: center;white-space: nowrap;word-break: keep-all;width: calc(100% - 241px);.notice-copy{margin-left: 32px;}}.notice-getWidth{word-break: break-all;white-space: nowrap;position: absolute;opacity: 0;top: 0;}
}
</style>

VUE跑马灯之文字无缝连接相关推荐

  1. 常见的跑马灯效果,无缝连接。mcake官网公告使用

    无缝连接跑马灯哦...mcake官网公告使用 演示 <!doctype html> <html lang="en"> <head><met ...

  2. android 字体跑马灯,Android文字跑马灯功能的实现(自定义跑马灯控件)

    文字跑马灯效果这个功能挺常见的,网上也有很多的介绍,大多是说使用普通的TextView加上几条属性即可实现.不过我在使用时发现并不能实现滚动,可能是因为我的页面中使用到的布局及控件比较复杂,被别的控件 ...

  3. 【iOS_GitHub】跑马灯/滚动文字条(类似于菜鸟/京东/支付宝/聚划算/网商银行等app的跑马灯功能)

    Marquee(跑马灯) 说一下初衷吧,最初要用到跑马灯功能的时候,也找过一些SDK,但未能找到与我需求很好契合的SDK,主要就是手势滑动后的问题(手势滑动push/pop || 前后台切换等时候跑马 ...

  4. Android 自定义跑马灯文字

    Android 跑马灯效果文字: 效果图(真实动画很流畅,这个转gif有问题,感觉有点卡): . 代码: /*** Created by wuguangliang on 2018/12/21** 跑马 ...

  5. Android 多种跑马灯的方法

    转自http://jsf.iteye.com/blog/680257 http://www.devdiv.com/home.php?mod=space&uid=31865&do=blo ...

  6. PHP怎么设置字体走马灯效果,html跑马灯/走马灯效果

    实现跑马灯的方法很多,其中最简单的是采用一句Html代码来实现,我们在需要出现跑马灯效果的地方插入"滚动的文字"语句,它的效果如下所示: 滚动的文字 适当的运用标签的参数,可以表现 ...

  7. html网页内容自动滚动实现跑马灯效果

    1.效果1 超出div高度,文本自动滚动(像跑马灯一样从下往上滚动) 一个div里面有文字 1.如果文字没超出div高度:文字不用滚动 2.如果文字太多超出了div高度,那些文字就自动滚动 ps:滚动 ...

  8. CSS实现公告栏文字跑马灯特效(VUE组件)

    效果图 VUE组件封装 <template><div class="marquee" :style="{ backgroundColor: bgColo ...

  9. 【前端学习日记】利用Vue实现跑马灯的效果

    一.效果 按下roll按钮,文字进行滚动: 按下stop按钮,文字停止滚动: 二.重要代码 1.通过以下方式引入Vue <!-- 开发环境版本,包含了有帮助的命令行警告 --> <s ...

最新文章

  1. 互联网巨头终极战场:得开发者得天下
  2. 微信小程序 - this.triggerEvent()
  3. python 每日温度
  4. centos 6.5 rpm mysql_Linux平台(CentOS 6.5) RPM包方式安装 Mysql 5.7
  5. json文本装换为JSONArray
  6. 您在2016年会做什么? Apache Spark,Kafka,Drill等
  7. [css] 你认为sass和less的最大区别是什么呢?你喜欢哪个?为什么?
  8. 基本的正则表达式符号 【】
  9. 拓端tecdat|R语言线性分类判别LDA和二次分类判别QDA实例
  10. 我终于会加载模块了 值得纪念!
  11. 去中心化交易所如雨后春笋,EOS交易所崭露头角
  12. 22HTML5期末大作业:电影网站设计——电影我不是药神响应式页播(4页) HTML+CSS+JavaScript 大学生电影网页作品 影视网页设计作业模板 学生网页制作源代码下载
  13. COMSOL Multiphysics 多物理场仿真学习小记
  14. oracle回收站还原,Oracle从“回收站”恢复删除的表
  15. 开通支付宝口碑收款码提现免手续费,信用卡转账秒到支付宝
  16. 使用Matlab理解PID
  17. TPO Official 01 Speaking
  18. LeetCode-----第113题-----路径总和 II
  19. 现货、期货、期权、权证
  20. python之旅【第二篇】

热门文章

  1. 3D点云配准算法-4PCS(4点全等集配准算法)
  2. 一张壁纸使 Android 手机集体变砖,目前尚无解决方法
  3. 使用kinect2.0做动作识别和重量颜色识别
  4. 英语计算机主板接口有,i/o(计算机接口)_百度百科
  5. #c语言计算某年某月的天数
  6. 分析响应时间ns级别的TVS管个中奥秘
  7. 迪桑特宣布彭于晏成为品牌代言人
  8. bilibili自动挂机PHP_Bilibili数据接口整理(不定期更新)
  9. 非迅雷会员免费看云点播方法,无需软件享官方云点播
  10. 瑞波2020年第三季度XRP市场报告节选