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 this作用域以及GET传输值过长的问题解决方法
Aug 06 Javascript
jquery事件与函数的使用介绍
Sep 29 Javascript
jquery设置按钮停顿3秒不可用
Mar 07 Javascript
document.forms用法示例介绍
Jun 26 Javascript
JavaScript中具名函数的多种调用方式总结
Nov 08 Javascript
JS函数this的用法实例分析
Feb 05 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
Oct 11 Javascript
jQuery实现扑克正反面翻牌效果
Mar 10 Javascript
手把手教你写一个微信小程序(推荐)
Oct 17 Javascript
如何解决.vue文件url引用文件的问题
Jan 18 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
Aug 20 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
Dec 03 Vue.js
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打印输出函数汇总
2016/08/28 PHP
PHP调用Mailgun发送邮件的方法
2017/05/04 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
jquery+css+ul模拟列表菜单具体实现思路
2013/04/15 Javascript
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
ES6基础之默认参数值
2019/02/21 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
Python设计模式之工厂方法模式实例详解
2019/01/18 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
python中自带的三个装饰器的实现
2019/11/08 Python
Python实现密码薄文件读写操作
2019/12/16 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
Python tcp传输代码实例解析
2020/03/18 Python
Python应用实现处理excel数据过程解析
2020/06/19 Python
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
国外平面设计第一市场:99designs
2016/10/25 全球购物
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
药学专业大学生自荐信
2013/09/28 职场文书
外语专业毕业生自我评价分享
2013/10/05 职场文书
信息专业学生学习的自我评价
2014/02/17 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
滴水洞导游词
2015/02/10 职场文书
会议主持人开场白台词
2015/05/28 职场文书