关于网页中的无缝滚动的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 相关文章推荐
javascritp实现input输入框相关限制用法
Jun 29 Javascript
js innerHTML 的一些问题的解决方法
Jun 22 Javascript
JS+XML 省份和城市之间的联动实现代码
Oct 14 Javascript
Javascript 实现TreeView CheckBox全选效果
Jan 11 Javascript
JavaScript tab选项卡插件实例代码
Feb 23 Javascript
js关于getImageData跨域问题的解决方法
Oct 14 Javascript
fetch 使用及如何接收JS传值
Nov 11 Javascript
以v-model与promise两种方式实现vue弹窗组件
May 21 Javascript
详解Angular如何正确的操作DOM
Jul 06 Javascript
vue构建动态表单的方法示例
Sep 22 Javascript
vue-router之nuxt动态路由设置的两种方法小结
Sep 26 Javascript
微信小程序实现跳转的几种方式总结(推荐)
Apr 24 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
ajax缓存问题解决途径
2006/12/06 PHP
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
解析csv数据导入mysql的方法
2013/07/01 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
PHP资源管理框架Assetic简介
2014/06/12 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
用Python写冒泡排序代码
2016/04/12 Python
Python的包管理器pip更换软件源的方法详解
2016/06/20 Python
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
AJAX的优缺点都有什么
2015/08/18 面试题
商务英语专业应届毕业生求职信
2013/10/28 职场文书
商务英语广告词大全
2014/03/18 职场文书
毕业生就业意向书
2014/04/01 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
python 安全地删除列表元素的方法
2022/03/16 Python