关于网页中的无缝滚动的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中使用正则表达式清理table样式的代码
Apr 01 Javascript
原生javascript实现匀速运动动画效果
Feb 26 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
Nov 04 Javascript
Bootstrap CSS布局之图像
Dec 17 Javascript
解决React Native端口号修改的方法
Jul 28 Javascript
vue轮播图插件vue-awesome-swiper
Nov 27 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
May 05 Javascript
使用JQuery自动完成插件Auto Complete详解
Jun 18 jQuery
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
Sep 02 Javascript
如何基于viewport vm适配移动端页面
Nov 13 Javascript
JS如何实现基于websocket的多端桥接平台
May 14 Javascript
Node实现搜索框进行模糊查询
Jun 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 stream_get_meta_data返回值
2013/09/29 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
微信小程序动态增加按钮组件
2018/09/14 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
python函数的5种参数详解
2017/02/24 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
np.dot()函数的用法详解
2020/01/17 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
如何通过python检查文件是否被占用
2020/12/18 Python
中国旅游网站:同程旅游
2016/09/11 全球购物
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
优秀应届生推荐信
2013/11/09 职场文书
工艺工程师工作职责
2013/11/23 职场文书
《放小鸟》教学反思
2014/04/20 职场文书
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
吴仁宝观后感
2015/06/09 职场文书