单行文字垂直/水平跑马灯效果
需求描述
接到的需求是这样的:跑马灯效果 一次展示一行文字 循环滚动 文字滚动到视野中停留一秒后滚出。
静态效果如下图,文字从下往上或者从右往左滚动,滚动到此位置时停留一秒(不会传动图...
网络上有比较多的多行文字循环滚动的demo,找了一下好像能满足单行并且可停留一秒的比较少(emmm可能我没认真找
下面贴出我的最终解决方案。
解决方案
垂直方向滚动
使用一个定时器 不断改变最外层div的scrollTop,为了能循环滚动,增加一个与con1一样的con2
PS:这里的time选用1000/60是因为想要模拟window.requestAnimationFrame(一般1000ms60帧,当然了,你也可以直接使用requestAnimationFrame代替setInterval,效果更好
<!DOCTYPE html>
<html>
<head><title>单行文字垂直跑马灯效果</title><style type="text/css">ul,li{list-style:none;display:block;margin: 0;padding: 0;}#loop-show-box {width: 300px;height: 25px;line-height: 25px;background: red;position: absolute;top: 0;left: 0;right: 0;overflow: hidden;}.li-style {width: 100%;height: 25px;text-align: center;}</style>
</head>
<body>
<div id="loop-show-box"><ul id="con1"><li class="li-style">测试1号</li><li class="li-style">测试2号</li><li class="li-style">测试3号</li><li class="li-style">测试4号</li></ul><ul id="con2"></ul>
</div>
<script type="text/javascript">var area = document.getElementById('loop-show-box');var con1 = document.getElementById('con1');var con2 = document.getElementById('con2');var mytimer1 = null;var mytimer = null;var time = 1000 / 60;con2.innerHTML = con1.innerHTML;function scrollUp () {if (area.scrollTop >= con1.offsetHeight) {area.scrollTop = 0;} else {if (area.scrollTop % 25 == 0) {clearInterval(mytimer);clearInterval(mytimer1);mytimer1 = setTimeout(function () {mytimer = setInterval(scrollUp, time);}, 1000);}area.scrollTop++;}}mytimer = setInterval(scrollUp, time);
</script>
</body>
</html>
水平方向滚动
水平方法滚动的具体实现其实跟垂直方向类似的,不同的是要改变的是容器的scrollLeft
<!DOCTYPE html>
<html>
<head><title>单行文字水平跑马灯效果</title><style type="text/css">*{margin: 0;padding: 0;}.container {width: 400px;height: 25px;display: flex;flex-direction: row;justify-content: center;align-items: center;margin: 100px auto;}.icon {width: 15px;margin-right: 15px;}#loop-show-box {width: 300px;height: 25px;line-height: 25px;background: red;overflow: auto;white-space: nowrap;}.li-style {width: 300px;height: 25px;text-align: left;/*使用inline-block的时候两个item之间会存在间距(当然了你可以把它们写在一行以去除这样的间距*/display: inline-flex;}#con1,#con2 {display: inline-flex;}</style>
</head>
<body>
<div class="container"><img src="img/horn.png" class="icon"><div id="loop-show-box"><div id="con1"><div class="li-style">测试1号</div><div class="li-style">测试2号</div><div class="li-style">测试3号</div><div class="li-style">测试4号</div><div class="li-style">测试5号</div><div class="li-style">测试6号</div></div><div id="con2"></div></div>
</div>
<script type="text/javascript">var area = document.getElementById('loop-show-box');var con1 = document.getElementById('con1');var con2 = document.getElementById('con2');var mytimer1 = null;var mytimer = null;var time = 1000 / 60;con2.innerHTML = con1.innerHTML;function scrollUp () {if (area.scrollLeft >= con1.offsetWidth) {area.scrollLeft = 0;} else {// 可根据想要的速度调节步长area.scrollLeft += 2;if (area.scrollLeft % 300 == 0) {clearInterval(mytimer);clearInterval(mytimer1);mytimer1 = setTimeout(function () {mytimer = setInterval(scrollUp, time);}, 1000);}}}mytimer1 = setTimeout(function () {mytimer = setInterval(scrollUp, time);}, 1000)
</script>
</body>
</html>
单行文字垂直/水平跑马灯效果相关推荐
- CSS+JavaScript制作文字的LED跑马灯效果
以下是html代码: <head><meta charset="utf-8" /><title>文字跑马灯</title><l ...
- TextView的跑马灯效果实现
TextView的跑马灯效果实现 问题描述 当文字内容过长,但是只允许显示一行时,可以将文字显示为跑马灯效果,即文字滚动显示. 代码实现 第一种方法实现 先查询TextView控件的属性,得到以下信息 ...
- android上垂直跑马灯,android textview 垂直滚动and水平跑马灯
垂直滚动的话就挺简单的.当然了不是自动的垂直滚动.如果是自动的垂直滚动的话还需要自定义.所以如果有需求需要textview 可以垂直滚动的话,那你来这里就对了. 直接贴 代码.就是这么任性. andr ...
- Android 使用 ellipsize 实现文字横向移动效果(跑马灯效果)
实现的效果图如下 ellipsize 可以设置跑马灯效果 具体代码设置如下 <TextViewandroid:layout_width="match_parent"andro ...
- c语言小程序跑马灯,微信小程序实现文字跑马灯效果
本文实例为大家分享了微信小程序实现文字跑马灯的具体代码,供大家参考,具体内容如下 wxml 1 显示完后再显示 Box"> 2 出现白边后即显示 Box"> {{tex ...
- Android 自定义View实现文本水平方向的跑马灯效果
自定义View实现文本水平方向的跑马灯效果,可以设置文本相关属性及滚动速度,以及滚动方式 /*** Created by wyl on 2018/10/10.*/ public class Marqu ...
- 跑马灯抽奖js php,文字跑马灯效果的完成
文字跑马灯效果的完成 发表于2019-06-09 21:14| 次阅读| 来源网络整理| 作者session 摘要:跑马灯效果在很多页面上也常常出现,本文次要为大家具体引见微信小程序完成文字跑马灯效果 ...
- 微信小程序教程:文字跑马灯效果
当你的微信小程序内容中出现文字跑马灯效果,会不会觉得很拉风,接下来大家详细讲解下如何操作实现这效果. 效果: wxml <view>1 显示完后再显示</view> <v ...
- Android TextView跑马灯效果与设置文字阴影
TextView跑马灯效果的实现 自定义 一个TextView public class MusicDesText extends TextView {public MusicDesText(Cont ...
最新文章
- 今天看到的如何做个坏男人的招数
- 办公室网络打印机的连接
- java随机数转换_Java获取随机数的3种方法(转)
- 数据结构与算法—递归算法(从阶乘、斐波那契到汉诺塔的递归图解)
- java 自助更改密码 api_搭建ldap自助修改密码系统--Self Service Password
- C++ pancake sort煎饼排序的实现算法(附完整源码)
- 学习手记(2018.9.15~2018.11.10)——备战NOIP2018
- IOS CALayer的属性和使用
- NumPy常用属性及方法
- Android Studio(13)--- Git之使用GitHub搭建远程仓库
- 从C语言到C++的进阶之面向对象、using与命名空间(篇四)
- java工具链 有什么_Iodine:一个优秀的Java语言工具链
- Android Studio实现记事本项目
- 基于Html的个性化新闻资讯网页设计
- Lange定向耦合器的设计与仿真
- 微信小程序红包 php,微信小程序实现红包功能(后端PHP实现逻辑)
- html线条倾斜代码,HTML5 居中斜向分割线切换的单页网页模板
- 支付宝二维码可以抓包更改金额_mac下 安卓模拟器抓包推荐 - _恒
- AI人工智能—数据标注的主要类型和标注注意事项
- 数组和字符串赋值的问题(定义时不初始化)
热门文章
- SAP S4HANA 与 ECC的差异,多话不说,上图一张!
- 如何让人工智能更智能?你需要一个开源平台
- SAP SD之如何配置发票分割开票
- 干货 |“NLP”与“语言学家”的那些事儿
- 安防AI芯片“战国时代” 谁能稳坐钓鱼台?
- 4句话让你明白什么是AI
- SAP MM IV中的Duplicated Invoice Check功能的测试
- python内置函数:iter、enumerate和next
- 世界被一种神秘的数学力量彻底改变了
- 每一个科学家的内心都住着一位哲学家(节选)