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 相关文章推荐
Web版彷 Visual Studio 2003 颜色选择器
Jan 09 Javascript
setTimeout和setInterval的浏览器兼容性分析
Feb 27 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
Oct 13 Javascript
浅析jQuery的链式调用之each函数
Dec 03 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
Jun 05 Javascript
jQuery阻止事件冒泡具体实现
Oct 11 Javascript
jQuery性能优化技巧分析
Feb 20 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
Aug 05 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
May 12 Javascript
VUE长按事件需求详解
Oct 18 Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
Apr 11 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中动态调用函数的方法
2015/03/16 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
jquery 选择器部分整理
2009/10/28 Javascript
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
JavaScript中的闭包原理分析
2010/03/08 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
jQuery复制节点用法示例(clone方法)
2016/09/08 Javascript
JS动态的把左边列表添加到右边的实现代码(可上下移动)
2016/11/17 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
J2EE系统只能是基于web
2015/09/08 面试题
工程专业毕业生自荐信范文
2013/12/25 职场文书
基层工作经历证明
2014/01/13 职场文书
师范生免费教育协议书范本
2014/10/09 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
个人自荐书怎么写
2015/03/26 职场文书
情人节单身感言
2015/08/03 职场文书
电力培训学习心得体会
2016/01/11 职场文书
基于Redis的List实现特价商品列表功能
2021/08/30 Redis