关于网页中的无缝滚动的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 相关文章推荐
[Web]防止用户复制页面内容和另存页面的方法
Feb 06 Javascript
javascript设置金额样式转换保留两位小数示例代码
Dec 04 Javascript
jquery ui bootstrap 实现自定义风格
Nov 14 Javascript
JS实现跟随鼠标的链接文字提示框效果
Aug 06 Javascript
如何在Linux上安装Node.js
Apr 01 Javascript
jQuery中队列queue()函数的实例教程
May 03 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
Jan 09 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
Nov 03 Javascript
微信小程序实现滴滴导航tab切换效果
Jul 24 Javascript
vue父组件异步获取数据传给子组件的方法
Jul 26 Javascript
js中的reduce()函数讲解
Jan 18 Javascript
JS实现拖拽元素时与另一元素碰撞检测
Aug 27 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代码分析
2016/09/29 PHP
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
2016/10/04 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
2018/12/30 Javascript
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
python实现在IDLE中输入多行的方法
2018/04/19 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
HTML5中的音频和视频媒体播放元素小结
2016/01/29 HTML / CSS
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
canvas实现漂亮的下雨效果的示例
2018/04/18 HTML / CSS
决定成败的关键——创业计划书
2014/01/24 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
求职自我评价范文100字
2014/09/23 职场文书
教师研修随笔感言
2015/11/18 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
Java线程的6种状态与生命周期
2022/05/11 Java/Android