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 相关文章推荐
javascript 表单规则集合对象
Jul 21 Javascript
Javascript this 的一些学习总结
Aug 31 Javascript
用Jquery.load载入页面实现局部刷新
Jan 22 Javascript
JavaScript中诡异的delete操作符
Mar 12 Javascript
原生js制作简单的数字键盘
Apr 24 Javascript
jquery实现点击展开列表同时隐藏其他列表
Aug 10 Javascript
JS简单实现无缝滚动效果实例
Aug 24 Javascript
小程序登录态管理的方法示例
Nov 13 Javascript
微信小程序下拉框组件使用方法详解
Dec 28 Javascript
基于vue通用表单解决方案的思考与分析
Mar 16 Javascript
JavaScript实现tab栏切换效果
Mar 16 Javascript
vue render函数动态加载img的src路径操作
Oct 26 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查询ip所在地的方法
2014/12/05 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
2019/10/03 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
javascript getElementsByName()的用法说明
2009/07/31 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
基于jquery实现智能表单验证操作
2016/05/09 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
Vue解决移动端弹窗滚动穿透问题
2020/12/15 Vue.js
Python抓取电影天堂电影信息的代码
2016/04/07 Python
python如何在循环引用中管理内存
2018/03/20 Python
Python并发:多线程与多进程的详解
2019/01/24 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
Python超越函数积分运算以及绘图实现代码
2019/11/20 Python
python处理写入数据代码讲解
2020/10/22 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
个人合伙协议书范本
2014/10/14 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
给领导敬酒词
2015/08/12 职场文书
中学校园广播稿
2015/08/18 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
如何在Python中妥善使用进度条详解
2022/04/05 Python