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 相关文章推荐
js getBoundingClientRect() 来获取页面元素的位置
Nov 25 Javascript
javascript实现倒计时N秒后网页自动跳转代码
Dec 11 Javascript
jQuery中:disabled选择器用法实例
Jan 04 Javascript
jquery实现简单的自动播放幻灯片效果
Jun 13 Javascript
详解JavaScript中的自定义事件编写
May 10 Javascript
轻松理解JavaScript之AJAX
Mar 15 Javascript
JS实现的二叉树算法完整实例
Apr 06 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
May 12 Javascript
JavaScript判断对象和数组的两种方法
May 31 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
Jun 17 Javascript
Vue scoped及deep使用方法解析
Aug 01 Javascript
在antd Table中插入可编辑的单元格实例
Oct 28 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中基本符号及使用方法
2010/03/23 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
2013/02/16 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
2019/07/24 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
2020/08/20 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
js 上下左右键控制焦点(示例代码)
2013/12/14 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
基于Vuejs的搜索匹配功能实现方法
2018/03/03 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
python生成九宫格图片
2018/11/19 Python
python logging模块的使用总结
2019/07/09 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
欧洲领先的电子和电信零售商和服务提供商:Currys PC World Business
2017/12/05 全球购物
影视制作岗位职责
2013/12/04 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
出国留学英文自荐信
2015/03/25 职场文书
2015年加油站工作总结
2015/05/13 职场文书
海康机器人重磅发布全新算法开发平台VM4.2
2022/04/21 数码科技