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 相关文章推荐
jquery弹出框的用法示例(一)
Aug 26 Javascript
jqgrid 编辑添加功能详细解析
Nov 08 Javascript
批量修改标签css样式以input标签为例
Jul 31 Javascript
js仿黑客帝国字母掉落效果代码分享
Nov 08 Javascript
全面解析Bootstrap布局组件应用
Feb 22 Javascript
jQuery双向列表选择器DIV模拟版
Nov 01 Javascript
基于Vuejs框架实现翻页组件
Jun 29 Javascript
IntersectionObserver API 详解篇
Dec 11 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
Jan 12 Javascript
jQuery自动或手动图片切换效果
Oct 11 jQuery
JS实现数组的增删改查操作示例
Aug 29 Javascript
node实现爬虫的几种简易方式
Aug 22 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
PHP批量上传图片的具体实现方法介绍.
2014/02/26 PHP
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
js style动态设置table高度
2014/10/21 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
python的id()函数解密过程
2012/12/25 Python
Python的装饰器用法学习笔记
2016/06/24 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
python3中calendar返回某一时间点实例讲解
2020/11/18 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
企业行政文员岗位职责
2013/12/03 职场文书
小区门卫岗位职责
2013/12/31 职场文书
火锅店创业计划书范文
2014/02/02 职场文书
国际商贸专业自荐信
2014/06/09 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
学校师德师风整改措施
2014/10/27 职场文书
2014年审计工作总结
2014/11/17 职场文书
升职自荐书
2019/05/09 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers