关于网页中的无缝滚动的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 相关文章推荐
通过javascript的匿名函数来分析几段简单有趣的代码
Jun 29 Javascript
QUnit jQuery的TDD框架
Nov 04 Javascript
javascript判断非数字的简单例子
Jul 18 Javascript
js用typeof方法判断undefined类型
Jul 15 Javascript
JS判断变量是否为空判断是否null
Jul 25 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
Mar 05 Javascript
js实现图片点击左右轮播
Jul 08 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
Jan 08 Javascript
ES6中Symbol类型用法实例详解
Apr 06 Javascript
JavaScript实现开关等效果
Sep 08 Javascript
angularjs1.X 重构controller 的方法小结
Aug 15 Javascript
design vue 表格开启列排序的操作
Oct 28 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中模拟POST传递数据的两种方法分享
2011/09/16 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
JavaScript去掉空格的方法集合
2010/12/28 Javascript
如何用ajax来创建一个XMLHttpRequest对象
2012/12/10 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
用jquery方法操作radio使其默认选项是否
2013/09/10 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
Ajax请求在数据量大的时候出现超时的解决方法
2014/02/27 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
如何正确理解javascript的模块化
2017/03/02 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
layui 表格的属性的显示转换方法
2018/08/14 Javascript
js实现京东秒杀倒计时功能
2019/01/21 Javascript
python每次处理固定个数的字符的方法总结
2013/01/29 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
法国综合购物网站:RueDuCommerce
2016/09/12 全球购物
简约控的天堂:The Undone
2016/12/21 全球购物
设计师珠宝:Ylang 23
2018/05/11 全球购物
服务中心夜班服务员岗位职责
2013/11/27 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
品牌宣传方案
2014/03/21 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
2015年网络管理员工作总结
2015/05/21 职场文书
python如何将mat文件转为png
2022/07/15 Python