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 相关文章推荐
URI、URL和URN之间的区别与联系
Dec 20 Javascript
javascript 禁止复制网页
Jun 11 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
Dec 09 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
Mar 26 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
Apr 15 Javascript
js中直接声明一个对象的方法
Aug 10 Javascript
js实现文字跟随鼠标移动而移动的方法
Feb 28 Javascript
Bootstrap布局组件应用实例讲解
Feb 17 Javascript
简述Matlab中size()函数的用法
Mar 20 Javascript
jQuery中JSONP的两种实现方式详解
Sep 26 Javascript
微信小程序 本地数据存储实例详解
Apr 13 Javascript
Vue中父子组件通讯之todolist组件功能开发
May 21 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
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
yii上传文件或图片实例
2014/04/01 PHP
linux下实现定时执行php脚本
2015/02/13 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
jQuery获取多种input值的简单实现方法
2016/06/20 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
在微信小程序中使用vant的方法
2019/06/07 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
Vue实现手机计算器
2020/08/17 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
Python中Collection的使用小技巧
2014/08/18 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
Django 博客实现简单的全文搜索的示例代码
2020/02/17 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
Oracle性能调优原则
2012/05/03 面试题
Windows和Linux动态库应用异同
2016/07/28 面试题
大专学生推荐信范文
2013/11/19 职场文书
季度思想汇报
2014/01/01 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
会计简历自我评价
2015/03/10 职场文书
教师节感想
2015/08/11 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python
基于Python实现将列表数据生成折线图
2022/03/23 Python