关于网页中的无缝滚动的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 相关文章推荐
详解new function(){}和function(){}() 区别分析
Mar 22 Javascript
Javascript JSQL,SQL无处不在,
May 05 Javascript
JavaScript 面向对象编程(2) 定义类
May 18 Javascript
js constructor的实际作用分析
Nov 15 Javascript
javaScript 页面自动加载事件详解
Feb 10 Javascript
iframe里的页面禁止右键事件的方法
Jun 10 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
Nov 17 Javascript
jQuery实现的输入框选择时间插件用法实例
Feb 28 Javascript
EasyUI加载完Html内容样式渲染完成后显示
Jul 25 Javascript
Vue打包后出现一些map文件的解决方法
Feb 13 Javascript
js实现转动骰子模型
Oct 24 Javascript
使用Vue 自定义文件选择器组件的实例代码
Mar 04 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
dedecms系统常用术语汇总
2007/04/03 PHP
php实现读取手机客户端浏览器的类
2015/01/09 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
Gambit vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
javascript闭包的理解
2015/04/01 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
jQuery与JavaScript节点创建方法的对比
2016/11/18 Javascript
Ajax实现不刷新取最新商品
2017/03/01 Javascript
nodejs后台集成ueditor富文本编辑器的实例
2017/07/11 NodeJs
微信小程序实现发红包功能
2018/07/11 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
python实现黑客字幕雨效果
2018/06/21 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
python如何运行js语句
2020/09/09 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
2019年Java 最常见的 面试题
2016/10/19 面试题
运动会解说词100字
2014/01/31 职场文书
演讲稿格式范文
2014/05/19 职场文书
暑期政治学习心得体会
2014/09/02 职场文书
2014国庆65周年领导讲话稿(3篇)
2014/09/21 职场文书
先进个人申报材料
2014/12/30 职场文书
跑吧孩子观后感
2015/06/10 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
常用的Python代码调试工具总结
2021/06/23 Python
TV动画《间谍过家家》公开PV
2022/03/20 日漫