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控制listbox中项的移动并排序的实现代码
Sep 28 Javascript
25个优雅的jQuery Tooltip插件推荐
May 25 Javascript
Javascript算符的优先级介绍
Mar 20 Javascript
js 得到文件后缀(通过正则实现)
Jul 08 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
Jun 29 Javascript
jQuery实现给页面换肤的方法
May 30 Javascript
JavaScript弹窗基础篇
Apr 27 Javascript
yarn与npm的命令行小结
Oct 20 Javascript
mint-ui 时间插件使用及获取选择值的方法
Feb 09 Javascript
JavaScript基础心法 数据类型
Mar 05 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
Mar 09 Javascript
vue-router懒加载的3种方式汇总
Feb 28 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
php json_encode奇怪问题说明
2011/09/27 PHP
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
thinkphp实现数组分页示例
2014/04/13 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
Jquery异步提交表单代码分享
2015/03/26 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
JavaScript实现一维数组转化为二维数组
2018/04/17 Python
python线程池threadpool实现篇
2018/04/27 Python
python使用folium库绘制地图点击框
2018/09/21 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
python RSA加密的示例
2020/12/09 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
高中生毕业自我鉴定
2013/10/10 职场文书
食品营养与检测应届生求职信
2013/11/08 职场文书
统计员岗位职责
2013/11/14 职场文书
总经理职责
2013/12/22 职场文书
真诚的求职信
2014/07/04 职场文书
色戒观后感
2015/06/12 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书