JS左右无缝滚动(一般方法+面向对象方法)


Posted in Javascript onAugust 17, 2012
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=GBK" /> 
<title>JS左右无缝滚动(一般方法+面向对象方法)</title> 
<style type="text/css"> 
.clearfix:after {content:"."; display:block; height:0; visibility:hidden; clear:both; } 
.clearfix { *zoom:1; } 
body{background:gray;} 
#wrap{width:810px; height:160px; 
border:1px solid black; 
position:relative; 
left:50%; 
top:50%; 
margin-left:-410px; 
margin-top:200px; 
background:#fff; 
overflow:hidden;} 
#wrap ul{margin:0px; 
padding:0px; 
position:absolute; 
top:0px; 
left:0px;} 
#wrap ul li{ list-style:none; float:left;margin:5px 10px;width:265px;} 
#wrap ul li img{ border:1px black solid; padding:10px;} 
</style> 
<!--script type="text/javascript"> 
window.onload=function(){ //一般方法 
var wrap=document.getElementById("wrap"); 
var wrap_ul=wrap.getElementsByTagName("ul")[0]; 
var wrap_li=wrap.getElementsByTagName("li"); 
wrap_ul.innerHTML+=wrap_ul.innerHTML; 
wrap_ul.style.width=(wrap_li[0].offsetWidth+20)*wrap_li.length+"px"; 
Autoscroll=setInterval(scroll,100); 
function scroll(){ 
wrap_ul.style.left=wrap_ul.offsetLeft-3+"px"; //这里因为ie对offsetLeft的解析不一样,所以ie下必须减大于等于3的数 
if(wrap_ul.offsetLeft<=-wrap_ul.offsetWidth/2){ 
wrap_ul.style.left="0px"; 
}else if(wrap_ul.offsetLeft>=0){ 
wrap_ul.style.left=-wrap_ul.offsetWidth/2+"px"; 
} 
} 
wrap.onmouseover=function(){ 
clearInterval(Autoscroll); 
} 
wrap.onmouseout=function(){ 
Autoscroll=setInterval(scroll,100); 
} 
} 
</script--> 
<script type="text/javascript"> 
function Slide(obj,direction,speed){ //面向对象的方法,可以自由控制方向,speed=>3 ie下可以 
this.container=document.getElementById(obj); 
this.content=this.container.getElementsByTagName("ul")[0]; 
this.lis=this.content.getElementsByTagName("li"); 
this.content.innerHTML+=this.content.innerHTML; 
this.content.style.width=(this.lis[0].offsetWidth+20)*this.lis.length+"px"; 
var that=this 
if(direction=="left"){ 
this.speed=-speed 
}else if(direction=="right"){ 
this.speed=speed 
} 
Slide.prototype.scroll=function(){ 
this.content.style.left=this.content.offsetLeft+this.speed+"px"; 
if(this.content.offsetLeft <= -this.content.offsetWidth/2){ 
this.content.style.left ="0px"; 
}else if(this.content.offsetLeft >=0){ 
this.content.style.left = -this.content.offsetWidth/2 + "px"; 
} 
} 
this.time=setInterval(function(){that.scroll()},100); 
this.container.onmouseover=function(){ 
clearInterval(that.time); 
} 
this.container.onmouseout=function(){ 
that.time=setInterval(function(){that.scroll()},100); 
} 
} 
</script> 
<script type="text/javascript"> 
window.onload=function(){new Slide("wrap","left",5)} 
</script> </head> 
<body> 
<div id="wrap"> 
<ul class="clearfix"> 
<li><a href="#"><img src="http://www.baidu.com/img/baidu_sylogo1.gif" /></a></li> 
<li><a href="#"><img src="http://www.baidu.com/img/baidu_sylogo1.gif" /></a></li> 
<li><a href="#"><img src="http://www.baidu.com/img/baidu_sylogo1.gif" /></a></li> 
<li><a href="#"><img src="http://www.baidu.com/img/baidu_sylogo1.gif" /></a></li> 
<li><a href="#"><img src="http://www.baidu.com/img/baidu_sylogo1.gif" /></a></li> 
</ul> 
</div> 
</body> 
</html>
Javascript 相关文章推荐
js getElementsByTagName的简写方式
Jun 27 Javascript
js猜数字小游戏的简单实现代码
Jul 02 Javascript
浮动的div自适应居中显示的js代码
Dec 23 Javascript
Underscore.js常用方法总结
Feb 28 Javascript
Jquery中request和request.form和request.querystring的区别
Nov 26 Javascript
基于jquery实现省市区三级联动效果
Dec 25 Javascript
BootStrap网页中代码显示用法详解
Oct 21 Javascript
关于微信jssdk实现多图片上传的一点心得分享
Dec 13 Javascript
原生js实现Flappy Bird小游戏
Dec 24 Javascript
微信小程序实现banner图轮播效果
Jun 28 Javascript
electron实现静默打印的示例代码
Aug 12 Javascript
JavaScript console的使用方法实例分析
Apr 28 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
Aug 17 #Javascript
jquery插件制作 手风琴Panel效果实现
Aug 17 #Javascript
jquery插件制作 提示框插件实现代码
Aug 17 #Javascript
jquery插件制作 自增长输入框实现代码
Aug 17 #jQuery
jquery插件制作 表单验证实现代码
Aug 17 #Javascript
jquery插件制作 图片走廊 gallery
Aug 17 #Javascript
jquery插件制作教程 txtHover
Aug 17 #Javascript
You might like
swfupload 多文件上传实现代码
2008/08/27 PHP
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
PHP将回调函数作用到给定数组单元的方法
2014/08/19 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
jQuery操作 input type=checkbox的实现代码
2012/06/14 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
js分页工具实例
2015/01/28 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
玩转Koa之koa-router原理解析
2018/12/29 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
2019/04/02 Javascript
Vue 3.0中jsx语法的使用
2020/11/13 Javascript
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
Python之指数与E记法的区别详解
2019/11/21 Python
python实现控制台输出彩色字体
2020/04/05 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
数控加工专业毕业生自荐信
2013/09/27 职场文书
《陋室铭》教学反思
2014/02/26 职场文书
社区先进事迹材料
2014/05/19 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
公务员个人年终总结
2015/02/12 职场文书
2015年教师节感言
2015/08/03 职场文书
学校趣味运动会开幕词
2016/03/04 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
分析Netty直接内存原理及应用
2021/06/14 Java/Android
Python 图片添加美颜效果
2022/04/28 Python