关于网页中的无缝滚动的js代码


Posted in Javascript onJune 09, 2016

随便打开一个网页,基本上都会看到无缝滚动或者轮播图,比如淘宝还有360官网的首页

关于网页中的无缝滚动的js代码关于网页中的无缝滚动的js代码关于网页中的无缝滚动的js代码

观察这些轮播图可以发现图片可以来回循环地切换,那么是怎样做到的呢?

做到轮播图或者说无缝滚动主要有两种方式,一种是通过对图片的明暗即透明图的改变来显示或隐藏图片,另一种是通过运动框架,将图片显示在可视区域。这两种方式都会用到同一个东西,那就是定时器。

JavaScript中的定时器有两种,1.setInterval();2.setTimeout();相对应的关闭定时器也有两种方法,clearInterval()和clearTimeout()。两种定时器的区别是前者可以执行多次,而后者只执行一次。

这次只说无缝滚动,下篇介绍轮播图。

实现简单的无缝滚动的代码如下:

/*完整的代码*/
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<style>
div{position:relative;width:630px;height:220px;border:solid 2px black;overflow:hidden;}
ul{position:absolute;top:10px;left:0;}
img{width:200px;height:200px;float:left;margin-right:10px;border:2px solid yellow;}
li{list-style:none;margin:0;padding:0;}
ul{margin:0;padding:0;}
</style>
<script>
window.onload=function(){
var oUl=document.getElementById("main");
var aLi=oUl.getElementsByTagName("img");
var oInput=document.getElementsByTagName("input")[0];
oUl.innerHTML+=oUl.innerHTML;
oUl.style.width=aLi.length*aLi[0].offsetWidth+"px";
var timer=null;
setInterval(function(){
oUl.style.left=oUl.offsetLeft-8+"px";
if(oUl.offsetLeft<-oUl.offsetWidth/2){
oUl.style.left="0px";
}
},30);
};
</script>
</head>
<body>
<div>
<ul id="main">
<li><img src="../img/1.jpg"></li>
<li><img src="../img/2.jpg"></li>
<li><img src="../img/3.jpg"></li>
<li><img src="../img/4.jpg"></li>
<li><img src="../img/9.jpg"></li>
</ul>
</div>
</div>
</body>
</html>

/-----------------------------------------------------------------------------------------------------------------------------------------------------------/

无缝滚动的布局比较简单,下面主要讲解JS部分内容:

首先分别获取到ul和li,再将ul里面的内容复制一份,通过js动态修改ul的宽度(如果要做到上下无缝滚动,则修改其宽度),最后开定时器,代码中是每隔30微秒ul向左移动8个像素,而当ul的可视左边距小于ul总长度的一半时,使其变为0。由于计算机的运行速度非常快,所以几乎感觉不到这一变化。我们看到的只是图片不断地向左移动,无休止的运动。

以上所述是小编给大家介绍的关于网页中的无缝滚动的js代码,希望对大家有所帮助!

Javascript 相关文章推荐
zTree插件之多选下拉菜单实例代码
Nov 06 Javascript
JavaScript代码复用模式详解
Nov 07 Javascript
AngularJS入门教程(二):AngularJS模板
Dec 06 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
Aug 31 Javascript
JS实现的简单拖拽功能示例
Mar 13 Javascript
Vue的移动端多图上传插件vue-easy-uploader的示例代码
Nov 27 Javascript
基于Swiper实现移动端页面图片轮播效果
Dec 28 Javascript
vue实现同一个页面可以有多个router-view的方法
Sep 20 Javascript
vue缓存的keepalive页面刷新数据的方法
Apr 23 Javascript
微信小程序实现购物车代码实例详解
Aug 29 Javascript
细述Javascript的加法运算符的具体使用
Oct 18 Javascript
微信小程序实现自定义底部导航
Nov 18 Javascript
Document.body.scrollTop的值总为零的快速解决办法
Jun 09 #Javascript
JavaScript事件学习小结(三)js事件对象
Jun 09 #Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
Jun 09 #Javascript
JavaScript事件学习小结(一)事件流
Jun 09 #Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
Jun 09 #Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
Jun 09 #Javascript
JS实现星星评分功能实例代码(两种方法)
Jun 09 #Javascript
You might like
PHP 身份证号验证函数
2009/05/07 PHP
PHP 手机归属地查询 api
2010/02/08 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
2015/08/31 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
Angular2整合其他插件的方法
2018/01/20 Javascript
JS 正则表达式验证密码、邮箱格式的实例代码
2018/10/28 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
2020/08/08 Javascript
python实现从web抓取文档的方法
2014/09/26 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
办公室副主任岗位职责
2013/11/25 职场文书
儿子婚宴答谢词
2014/01/09 职场文书
人力资源管理毕业生自荐信
2014/06/26 职场文书
毕业证代领委托书
2014/09/26 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
国防教育标语
2014/10/08 职场文书
2014年居委会工作总结
2014/12/09 职场文书
网络销售员岗位职责
2015/04/11 职场文书
活动费用申请报告
2015/05/15 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
浅谈JS的二进制家族
2021/05/09 Javascript