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的ajax jsonp的使用解惑
Oct 09 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
Mar 05 Javascript
JS定义回车事件(实现代码)
Jul 08 Javascript
Js冒泡事件详解及阻止示例
Mar 21 Javascript
js语法学习之判断一个对象是否为数组
May 13 Javascript
jQuery简单实现验证邮箱格式
Jul 15 Javascript
js实现基于正则表达式的轻量提示插件
Aug 29 Javascript
JS实现弹出下载对话框及常见文件类型的下载
Jul 13 Javascript
vuex实现及简略解析(小结)
Mar 01 Javascript
微信小程序实现单列下拉菜单效果
Apr 25 Javascript
这应该是最详细的响应式系统讲解了
Jul 22 Javascript
详解vue-flickity的fullScreen功能实现
Apr 07 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目录与文件操作
2011/12/30 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
Javascript Global对象
2009/08/13 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
使用Nodejs开发微信公众号后台服务实例
2014/09/03 NodeJs
使用VS开发 Node.js指南
2015/01/06 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
python益智游戏计算汉诺塔问题示例
2014/03/05 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
2014/11/05 HTML / CSS
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
英文导游欢迎词
2014/01/11 职场文书
党的群众路线对照检查材料思想汇报(学校)
2014/10/04 职场文书
2015年乡镇发展党员工作总结
2015/03/31 职场文书
暑期家教宣传单
2015/07/14 职场文书
golang 实现Location跳转方式
2021/05/02 Golang
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python