javascript 不间断的图片滚动并可点击


Posted in Javascript onJanuary 15, 2010

css:

<style type="text/css"> 
.rollBox 
{ 
width: 704px; 
overflow: hidden; 
padding: 12px 0 5px 6px; 
} 
.rollBox .LeftBotton 
{ 
height: 52px; 
width: 19px; 
background: url(jt.gif) no-repeat 11px 0; 
overflow: hidden; 
float: left; 
display: inline; 
margin: 25px 0 0 0; 
cursor: pointer; 
background-color:Blue; 
color:White; 
} 
.rollBox .RightBotton 
{ 
height: 52px; 
width: 20px; 
background: url(jt.gif) no-repeat -8px 0; 
overflow: hidden; 
float: left; 
display: inline; 
margin: 25px 0 0 0; 
cursor: pointer; 
background-color:Blue; 
color:White; 
} 
.rollBox .Cont 
{ 
width: 663px; 
overflow: hidden; 
float: left; 
} 
.rollBox .ScrCont 
{ 
width: 10000000px; 
} 
.rollBox .Cont .pic 
{ 
width: 132px; 
float: left; 
text-align: center; 
} 
.rollBox .Cont .pic img 
{ 
padding: 4px; 
background: #fff; 
border: 1px solid #ccc; 
display: block; 
margin: 0 auto; 
} 
.rollBox .Cont .pic p 
{ 
line-height: 26px; 
color: #505050; 
} 
.rollBox .Cont a:link, .rollBox .Cont a:visited 
{ 
color: #626466; 
text-decoration: none; 
} 
.rollBox .Cont a:hover 
{ 
color: #f00; 
text-decoration: underline; 
} 
.rollBox #List1, .rollBox #List2 
{ 
float: left; 
} 
</style>

html代码
<div class="rollBox"> 
<div class="LeftBotton" onmousedown="ISL_GoUp()" onmouseup="ISL_StopUp()" onmouseout="ISL_StopUp()"> 
<<<<< 
</div> <div class="Cont" id="ISL_Cont"> 
<div class="ScrCont"> 
<div id="List1"> 
<!-- 图片列表 begin --> 
<div class="pic"> 
<a href="####"> 
<img src="https://3water.com/images/logo.gif" width="109" height="87" /></a> 
<a href="####">商品1</a> 
</div> 
<div class="pic"> 
<a href="####"> 
<img src="http://www.baidu.com/img/baidu_logo.gif" width="109" height="87" /></a> 
<a href="####">商品2</a> 
</div> 
<div class="pic"> 
<a href="####"> 
<img src="http://www.baidu.com/img/baidu_logo.gif" width="109" height="87" /></a> 
<a href="####">商品3</a> 
</div> 
<div class="pic"> 
<a href="####"> 
<img src="http://www.baidu.com/img/baidu_logo.gif" width="109" height="87" /></a> 
<a href="####">商品4</a> 
</div> 
<div class="pic"> 
<a href="####"> 
<img src="http://www.baidu.com/img/baidu_logo.gif" width="109" height="87" /></a> 
<a href="####">商品5</a> 
</div> 
<div class="pic"> 
<a href="####"> 
<img src="http://www.baidu.com/img/baidu_logo.gif" width="109" height="87" /></a> 
<a href="####">商品6</a> 
</div> 
<div class="pic"> 
<a href="####"> 
<img src="http://www.baidu.com/img/baidu_logo.gif" width="109" height="87" /></a> 
<a href="####">商品7</a> 
</div> 
<!-- 图片列表 end --> 
</div> 
<div id="List2"> 
</div> 
</div> 
</div> 
<div class="RightBotton" onmousedown="ISL_GoDown()" onmouseup="ISL_StopDown()" onmouseout="ISL_StopDown()"> 
>>>>>> 
</div> 
</div>

JS代码
//速度(毫秒) 
var Speed = 10; 
//每次移动(px) 
var Space = 5; 
//每次翻页宽度 
var PageWidth = 132; 
//整体移位(px) 
var fill = 0; 
//是否自动移动,true 移动,false 不移动 
var MoveLock = false; 
//移动时间对象 
var MoveTimeObj; 
//上翻 下翻 变量,当comp小于0 为上翻动 反之为下翻动 
var Comp = 0; 
//上下移动对象 
var AutoPlayObj = null; 
//将div List1中的所有元素分配给 div list2中 
GetObj("List2").innerHTML = GetObj("List1").innerHTML; 
//向左移动 
GetObj('ISL_Cont').scrollLeft = fill; 
//给div ISL_Cont 绑定鼠标移动在div上方时候的事件,该事件是清除自动播放的,当鼠标移动到div图片上时候将取消自动播放 
GetObj("ISL_Cont").onmouseover = function(){ clearInterval(AutoPlayObj); } 
//给div ISL_Cont 绑定鼠标移开div上方时候的时间,该事件是绑定自动播放的,当鼠标移开div图片上时候将又开始自动时间间隔自动播放 
GetObj("ISL_Cont").onmouseout = function(){ AutoPlay();} 
//第一次进来默认绑定为自动播放 
AutoPlay(); 
/* 
获取指定html对象 
*/ 
function GetObj(objName){ 
//判断当前页面中是否存在有效的元素标记,document.getElementById兼容火狐 
if(document.getElementById) 
{ 
return eval('document.getElementById("'+objName+'")') 
} 
else 
{ 
return eval('document.all.'+objName) 
} 
} 
/* 
自动滚动 
*/ 
function AutoPlay(){ 
//清除以前绑定的间隔时间滚动 
clearInterval(AutoPlayObj); 
//重新绑定间隔时间滚动,setInterval()方法是绑定在指定的时间执行,clearInterval()方法是清除指定的时间绑定对象 
AutoPlayObj = setInterval('ISL_GoDown();ISL_StopDown();',5000); 
} 
/* 
上翻开始 
*/ 
function ISL_GoUp(){ 
//如过当前为自动播放将不执行下面代码 
if(MoveLock) 
return; 
//清除以前绑定的间隔时间滚动 
clearInterval(AutoPlayObj); 
MoveLock = true; 
//在指定的时间中自动往左侧移动 
MoveTimeObj = setInterval('ISL_ScrUp();',Speed); 
} 
/* 
上翻停止 
*/ 
function ISL_StopUp(){ 
//清除以前绑定的间隔时间滚动 
clearInterval(MoveTimeObj); 
//判断当前论显图片的div做边的变距是否是第一个商品图片,不等于0不是第一个,反之等于第一张图片 
if(GetObj('ISL_Cont').scrollLeft % PageWidth - fill != 0) 
{ 
//div左边距移动 
Comp = fill - (GetObj('ISL_Cont').scrollLeft % PageWidth); 
//开始移动 
CompScr(); 
}else 
{ 
MoveLock = false; 
} 
//自动播放 
AutoPlay(); 
} 
/* 
上翻动作 
*/ 
function ISL_ScrUp(){ 
//如过当前图片的大div左边距小于0那么它的边距等于自身边距加上左边的点击按钮的宽度 
if(GetObj('ISL_Cont').scrollLeft <= 0) 
{ 
GetObj('ISL_Cont').scrollLeft = GetObj('ISL_Cont').scrollLeft + GetObj('List1').offsetWidth; 
} 
//往左侧移动 
GetObj('ISL_Cont').scrollLeft -= Space ; 
} 
/* 
下翻 
*/ 
function ISL_GoDown(){ 
//清除以前绑定的间隔时间滚动 
clearInterval(MoveTimeObj); 
//如过当前为自动播放将不执行下面代码 
if(MoveLock) 
return; 
//清除自动播放 
clearInterval(AutoPlayObj); 
MoveLock = true; 
//下翻方法 
ISL_ScrDown(); 
//在指定的时间中自动往右侧移动 
MoveTimeObj = setInterval('ISL_ScrDown()',Speed); 
} 
/* 
下翻停止 
*/ 
function ISL_StopDown(){ 
//清除以前绑定的间隔时间滚动 
clearInterval(MoveTimeObj); 
//如过当前图片的大div左边距小于0那么它的边距等于自身边距加上左边的点击按钮的宽度 
if(GetObj('ISL_Cont').scrollLeft % PageWidth - fill != 0 ) 
{ 
Comp = PageWidth - GetObj('ISL_Cont').scrollLeft % PageWidth + fill; 
CompScr(); 
}else 
{ 
MoveLock = false; 
} 
//开始自动播放 
AutoPlay(); 
} 
/* 
下翻动作 
*/ 
function ISL_ScrDown(){ 
if(GetObj('ISL_Cont').scrollLeft >= GetObj('List1').scrollWidth) 
{ 
GetObj('ISL_Cont').scrollLeft = GetObj('ISL_Cont').scrollLeft - GetObj('List1').scrollWidth; 
} 
GetObj('ISL_Cont').scrollLeft += Space; 
} 
/* 
左右移动控制处理 
*/ 
function CompScr(){ 
var num; 
if(Comp == 0) 
{ 
MoveLock = false; 
return; 
} 
//上翻 
if(Comp < 0) 
{ 
if(Comp < -Space) 
{ 
Comp += Space; 
num = Space; 
}else 
{ 
num = -Comp; 
Comp = 0; 
} 
GetObj('ISL_Cont').scrollLeft -= num; 
setTimeout('CompScr()',Speed); 
}else //下翻 
{ 
if(Comp > Space) 
{ 
Comp -= Space; 
num = Space; 
}else 
{ 
num = Comp; 
Comp = 0; 
} 
GetObj('ISL_Cont').scrollLeft += num; 
setTimeout('CompScr()',Speed); 
} 
}
Javascript 相关文章推荐
JS 面向对象之神奇的prototype
Feb 26 Javascript
jquery中ajax调用json数据的使用说明
Mar 17 Javascript
JS实现可展开折叠层的鼠标拖曳效果
Oct 09 Javascript
深入理解jQuery.data() 的实现方式
Nov 30 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
Jul 07 Javascript
Node.js使用MySQL连接池的方法实例
Feb 11 Javascript
详解angular如何调用HTML字符串的方法
Jun 30 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
Dec 16 Javascript
推荐15个最好用的JavaScript代码压缩工具
Feb 13 Javascript
如何阻止小程序遮罩层下方图层滚动
Sep 05 Javascript
JavaScript实现筛选数组
Mar 02 Javascript
canvas 中如何实现物体的框选
Aug 05 Javascript
Span元素的width属性无效果原因及解决方案
Jan 15 #Javascript
javascript实现的基于金山词霸网络翻译的代码
Jan 15 #Javascript
JQuery 引发两次$(document.ready)事件
Jan 15 #Javascript
用jQuery扩展自写的 UI导航
Jan 13 #Javascript
jQuery的一些特性和用法整理小结
Jan 13 #Javascript
JavaScript关于select的相关操作说明
Jan 13 #Javascript
海量经典的jQuery插件集合
Jan 12 #Javascript
You might like
PHP实现的连贯操作、链式操作实例
2014/07/08 PHP
php读取目录及子目录下所有文件名的方法
2014/10/20 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
JavaScript 快捷键设置实现代码
2009/03/13 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
2015/07/26 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
JS获取复选框的值,并传递到后台的实现方法
2016/05/30 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
[56:58]VP vs Optic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
用pickle存储Python的原生对象方法
2017/04/28 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
基于python时间处理方法(详解)
2017/08/14 Python
Python3 queue队列模块详细介绍
2018/01/05 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
TensorFlow数据输入的方法示例
2018/06/19 Python
python里 super类的工作原理详解
2019/06/19 Python
PyQt5中多线程模块QThread使用方法的实现
2020/01/31 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
jupyter notebook更换皮肤主题的实现
2021/01/07 Python
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
捐款倡议书范文
2014/02/02 职场文书
设备管理实施方案
2014/05/31 职场文书
校园运动会广播稿
2014/10/06 职场文书
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang