js 实现文字滚动功能,可更改配置参数 带完整版解析代码。
前言:
本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽。
本篇文章为您分析一下原生JS写文字滚动效果
需求分析:
需要用到animate.js动画插件 【上一篇博客中】 https://www.cnblogs.com/qq4297751/p/12651460.html
如果您没有看过我上一篇的运动插件的博客,那么请您先看完运动插件再来查阅下面这篇文章,本片文章只是对运动插件的一个小应用
HTML结构
<div class="container">
<div class="left title">最新公告</div>
<div class="left item">
<ul>
<li>1.Lorem ipsum dolor sit.</li>
<li>2.Deserunt nobis eum consectetur.</li>
<li>3.Deleniti ut esse praesentium?</li>
<li>4.Unde ullam dolore dicta!</li>
<li>5.Hic dicta atque esse.</li>
</ul>
</div>
</div>
CSS样式
.container {
background-color: #b3effe;
height: 50px;
padding: 10px 20px;
box-sizing: border-box;
}
.left {
float: left;
height: 30px;
line-height: 30px;
}
.title::after {
content: "|";
margin-left: 15px;
font-size: 25px;
color: #d8d8d8;
/* vertical-align: -5px; */
}
.left ul {
margin: 0;
padding: 0;
list-style: none;
margin-left: 20px;
height: 30px;
overflow: auto;
}
.left ul li {
height: 30px;
}

想让他无缝滚动,就需要在最后一条数据中添加第一条数据
// 选中ul
var ul = document.querySelector(".left ul");
// 第一步: 要让他无缝滚动,需要复制第一个li
function cloneFirstLi() {
// 深度克隆第一个li元素
var firstLi = ul.children[0].cloneNode(true);
// 添加到ul之后
ul.appendChild(firstLi);
}
cloneFirstLi(); // 调用函数
/**
* 第二步: 开始滚动
*/
function startSroll() {
// 设置定时器
setInterval(scroll, 2000)
}
/**
* 第三步: 滚动一次的距离
*/
function scroll() {
// 调用运动插件
var animate = new myPlugin.Animate({
total: 300, // 总时间
begin: {
top: curTop // 开始滚动条的高度
},
end: {
top: curTop + height // 结束滚动条的高度 = 当前滚动条的高度加上滚动距离
},
onmove: function () {
curTop = this.curData.top; // 目标状态的滚动条高度
ul.scrollTop = curTop; // 重新设置滚动条的高度
},
onover: function () {
// 如果当前滚动条的高度 - 滚动距离 === 目标状态的滚动条高度
if (ul.scrollHeight - height === curTop) {
curTop = 0; //滚动条回到0
ul.scrollTop = curTop; // 重新设置滚动条的高度
}
}
});
animate.start(); // 调用开始函数
}
startSroll();


结语
整完!!!
js 实现文字滚动功能,可更改配置参数 带完整版解析代码。的更多相关文章
- js 实现淘宝放大镜功能,可更改配置参数 带完整版解析代码[magnifier.js]
前言: 本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽. 本篇文章为您分析一下原生JS写淘宝放大镜效果 基本功能: 运 ...
- js 实现淘宝无缝轮播图效果,可更改配置参数 带完整版解析代码[slider.js]
前言: 本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽. 本篇文章为您分析一下原生JS写淘宝无缝轮播图效果 需求分析: ...
- js 实现图片瀑布流效果,可更改配置参数 带完整版解析代码[waterFall.js]
前言: 本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽. 本篇文章为您分析一下原生JS实现图片瀑布流效果 页面需求 1 ...
- js 实现对象的混合与克隆效果,带完整版解析代码[helpers.js]
前言: 本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽. 本篇文章为您分析一下原生JS写淘宝无缝轮播图效果 对象混合 ...
- js 实现动画功能,完整解析插件版 可更改配置参数[animate.js]
前言: 本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽. 本篇文章为您分析一下原生JS写一个运动插件 基本功能: 补充 ...
- JS无缝文字滚动(兼容各大浏览器)
<style>*{margin:0px;padding:0px;border:0px;}body{font-size:12px}#demo1{height:auto;text-align: ...
- MFC/VC CxImage 简单配置与使用 (完整版)
如果本篇文章还不能解决你在生成解决方案以及便宜过程中的问题 请参阅: http://blog.csdn.net/afterwards_/article/details/7997385 我个人配置过来成 ...
- PHP LAMP环境搭建及网站配置流程(完整版)
心血来潮想做一个自己的博客网站,写一些文章做技术分享,平时遇到的一些问题的解决办法都记录下来,网站搭建成功,那么第一篇博客自然就是整个网站的搭建以及域名的注册.备案.解析流程,总共分为以下几步: 1. ...
- IntelliJ IDEA配置Tomcat(完整版教程)
查找该问题的童鞋我相信IntelliJ IDEA,Tomcat的下载,JDK等其他的配置都应该完成了,那我直接进入正题了. 1.新建一个项目 2.由于这里我们仅仅为了展示如何成功部署Tomcat,以及 ...
随机推荐
- Oracle创建函数例子
编写一个函数计算学生某一门课程在班级内的排名. 表结构如下: create or replace function fun_score_rank( p_in_stuid in number,--学号 ...
- MySql 存储过程分页。
use address;drop procedure if exists `proc_s_area_code`;delimiter // #告诉mysql解释器,该段命令是否已经结束了,mysql是否 ...
- django_rest_framework视图传递参数给序列化器
django_rest_framework视图传递参数给序列化器 视图中默认可以将request.data传递给序列化器,但request.data是不可更改的对象,但又想将额外的参数传递给序列化器 ...
- Linux服务器架设篇,Nginx服务器的架设
1.安装 nginx依赖包 (1)安装pcre yum install pcre-devel (2)安装openssl yum -y install openssl-devel (3)安装zlib y ...
- String 对象-->lastIndexOf() 方法
1.定义和用法 lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索. 语法: string.lastInde ...
- 实战|使用Spark Streaming写入Hudi
欢迎关注微信公众号:ApacheHudi,解锁下一代数据湖技术 1. 项目背景 传统数仓的组织架构是针对离线数据的OLAP(联机事务分析)需求设计的,常用的导入数据方式为采用sqoop或spark定时 ...
- Redis之ziplist源码分析
一.ziplist简介 从上一篇分析我们知道quicklist的底层存储使用了ziplist(压缩列表),由于压缩列表本身也有不少内容,所以重新开了一篇,在正式源码之前,还是先看下ziplist的特点 ...
- Three.js如何选中外部模型
1.问题 three.js中模型选中使用的是射线法,根据摄像机角度,鼠标点击位置和模型选中的distance参数判断来选中模型.对于原生的矢量模型完全没有问题,但是当遇到导入的外部模型,如obj.st ...
- 恶劣的网络环境下,Netty是如何处理写事件的?
更多技术分享可关注我 前言 前面,在Netty在接收完新连接后,默认为何要为其注册读事件,其处理I/O事件的优先级是什么?这篇文章,分析到了Netty处理I/O事件的优先级——读事件优先,写事件仅仅是 ...
- Map使用foreach遍历方式,Map获取第一个键值
List<Map<String, Object>> mapList = new ArrayList<>(); for (Map.Entry<String,O ...