关于网页中的无缝滚动的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 相关文章推荐
符合W3C网页标准的iframe标签的使用方法
Jul 19 Javascript
获取URL地址中的文件名和参数的javascript代码
Sep 02 Javascript
JavaScript instanceof 的使用方法示例介绍
Oct 23 Javascript
JS 弹出层 定位至屏幕居中示例
May 21 Javascript
JavaScript基础函数整理汇总
Jan 30 Javascript
使用ES6语法重构React代码详解
May 09 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
Oct 14 jQuery
详解VueJs中的V-bind指令
May 03 Javascript
Vue 实现列表动态添加和删除的两种方法小结
Sep 07 Javascript
layui layer select 选择被遮挡的解决方法
Sep 21 Javascript
vue中使用GraphQL的实例代码
Nov 04 Javascript
原生JS实现汇率转换功能代码实例
May 13 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 register_shutdown_function()函数的使用示例
2015/06/23 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
XHTML-Strict 内允许出现的标签
2006/12/11 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
2013/12/02 Javascript
JsRender实用入门教程
2014/10/31 Javascript
AngularJS语法详解
2015/01/23 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
Javascript实现信息滚动效果
2017/05/18 Javascript
全面解析jQuery中的$(window)与$(document)的用法区别
2017/08/15 jQuery
node全局变量__dirname与__filename的区别
2019/01/14 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
python实现求最长回文子串长度
2018/01/22 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
Django开发中的日志输出的方法
2018/07/02 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
python增加图像对比度的方法
2019/07/12 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
tensorboard实现同时显示训练曲线和测试曲线
2020/01/21 Python
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
赔偿协议书
2015/01/27 职场文书
安阳殷墟导游词
2015/02/10 职场文书
网络妈妈观后感
2015/06/08 职场文书
紧急迫降观后感
2015/06/15 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python