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 相关文章推荐
ExtJS 2.0 实用简明教程之布局概述
Apr 29 Javascript
按给定几率进行随机抽取的js代码
Dec 28 Javascript
推荐30个新鲜出炉的精美 jQuery 效果
Mar 26 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
Jun 21 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
Oct 16 Javascript
JS获取浏览器语言动态加载JS文件示例代码
Oct 31 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
Feb 24 Javascript
js实现页面跳转的五种方法推荐
Mar 10 Javascript
AngularJS基础 ng-options 指令详解
Aug 02 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
Nov 10 Javascript
利用Node.js检测端口是否被占用的方法
Dec 07 Javascript
通过微信公众平台获取公众号文章的方法示例
Dec 25 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的字符串用法小结
2010/06/08 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
javascript日期计算实例分析
2015/06/29 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
jQuery 实时保存页面动态添加的数据的示例
2017/08/14 jQuery
js+html5生成自动排列对话框实例
2017/10/09 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
Python在图片中添加文字的两种方法
2017/04/29 Python
Python使用while循环花式打印乘法表
2019/01/28 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
python列表切片和嵌套列表取值操作详解
2020/02/27 Python
python 如何实现遗传算法
2020/09/22 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
移动端Html5中百度地图的点击事件
2019/01/31 HTML / CSS
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
2019年分享net面试的经历和题目
2016/08/07 面试题
大学毕业生自荐书怎么写?
2014/01/06 职场文书
致跳高运动员广播稿
2014/01/13 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
党员民主评议总结
2014/10/20 职场文书
一年级数学下册复习计划
2015/01/17 职场文书
趣味运动会广播稿
2015/08/19 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
Python中如何处理常见报错
2022/01/18 Python
浅谈Redis缓冲区机制
2022/06/05 Redis