关于网页中的无缝滚动的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 相关文章推荐
为jQuery.Treeview添加右键菜单的实现代码
Oct 22 Javascript
html中table数据排序的js代码
Aug 09 Javascript
node.js中的buffer.fill方法使用说明
Dec 14 Javascript
JavaScript常用标签和方法总结
Sep 01 Javascript
JavaScript基础知识之方法汇总结
Jan 24 Javascript
AngularJS动态生成div的ID源码解析
Aug 29 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
Sep 05 Javascript
JS简单实现tab切换效果的多窗口显示功能
Sep 07 Javascript
简单实现IONIC购物车功能
Jan 10 Javascript
js实现扫雷小程序的示例代码
Sep 27 Javascript
vue中实现Monaco Editor自定义提示功能
Jul 05 Javascript
js实现上传图片到服务器
Apr 11 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
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
字母顺序颠倒而单词顺序不变的php代码
2010/08/08 PHP
需要注意的几个PHP漏洞小结
2012/02/05 PHP
PHP判断图片格式的七种方法小结
2013/06/03 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
php实现用户登陆简单实例
2017/04/04 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
javascript prototype 原型链
2009/03/12 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
python任务调度实例分析
2015/05/19 Python
django之session与分页(实例讲解)
2017/11/13 Python
Python分支结构(switch)操作简介
2018/01/17 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
Django Rest framework频率原理与限制
2019/07/26 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
常用的四种CSS透明属性介绍
2014/04/12 HTML / CSS
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
软件测试企业面试试卷
2016/07/13 面试题
企划经理的岗位职责
2013/11/17 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
大学生团员个人总结
2015/02/14 职场文书