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查看对象功能代码
Apr 25 Javascript
JavaScript 计算当天是本年本月的第几周
Mar 22 Javascript
javascript 触发HTML元素绑定的函数
Sep 11 Javascript
jquery五角星评分插件示例分享
Feb 21 Javascript
jquery实现聚光灯效果的方法
Feb 06 Javascript
Bootstrap显示与隐藏简单实现代码
Mar 06 Javascript
利用js的闭包原理做对象封装及调用方法
Apr 07 Javascript
BootStrap的两种模态框方式
May 10 Javascript
学习JS中的DOM节点以及操作
Apr 30 Javascript
node.js遍历目录的方法示例
Aug 01 Javascript
vue axios请求频繁时取消上一次请求的方法
Nov 10 Javascript
微信小程序云开发实现数据添加、查询和分页
May 17 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 时间转换Unix时间戳代码
2010/01/22 PHP
drupal 代码实现URL重写
2011/05/04 PHP
php截取字符串函数分享
2015/02/02 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
PHP7变量处理机制修改
2021/03/09 PHP
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
使用jquery.qrcode.js生成二维码插件
2016/10/17 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
python字典键值对的添加和遍历方法
2016/09/11 Python
利用python获取当前日期前后N天或N月日期的方法示例
2017/07/30 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
Python PIL库图片灰化处理
2020/04/07 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
python爬虫如何解决图片验证码
2021/02/14 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
英国名牌服装购物网站:OD’s Designer
2019/09/02 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
英国健身专家:WIT Fitness
2021/02/09 全球购物
土木工程应届生自荐信
2013/09/24 职场文书
函授药学自我鉴定
2014/02/07 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
导游词之临安白水涧
2019/11/05 职场文书
python非标准时间的转换
2021/07/25 Python
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android
Elasticsearch 基本查询和组合查询
2022/04/19 Python