2012-11-08 来源:网络
【实例名称】
JS实现多幅图片分页滚动显示
【实例描述】
本例可用于图片新闻的展示,通过两个div控件循环显示所有的图片。可修改本例中的代码调整图片滚动的速度。
【实现代码】
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>标题页-学无忧(www.xue51.com)</title>
<SCRIPT language="JavaScript">
var scrollerwidth=90 //指定div的高度
var scrollerheight=32 //指定div的宽度
var scrollerbgcolor='white'
var pausebetweenimages=3000 //图片的间隔时间,默认为3秒。
//带链接的图片,存放在数组中
var slideimages=new Array()
slideimages[0]='<A href="http://www.baidu.com" target=_blank>
<IMG alt=百度搜索 border=0
height=40 src=http://www.baidu.com/img/logo.gif width=100></A>'
slideimages[1]='<A href=http://www.google.cn target=_blank>
<IMG alt=google搜索 border=0 height=40
src=http://www.google.cn/intl/zh-CN/images/logo_cn.gif width=100></A>'
slideimages[2]='<A href=# target=_blank>
<IMG alt=广告位置为你准备 border=0 height=40 src="" width=100></A>'
slideimages[3]='<A href=http://www.google.cn target=_blank>
<IMG alt=google搜索 border=0 height=40
src=http://www.google.cn/intl/zh-CN/images/logo_cn.gif width=100></A>'
if (slideimages.length>1)
i=2 //初始化一个变量,用来做图片数组的索引
else
i=0
function move1(mydiv)
{
tdiv=eval(mydiv) //获取div对象
if (tdiv.style.pixelTop>0&&tdiv.style.pixelTop<=4){
//判断div的y坐标
tdiv.style.pixelTop=0
//指定div的y坐标
setTimeout("move1(tdiv)",pausebetweenimages)
//设置转换的时间间隔
setTimeout("move2(secondDiv)",pausebetweenimages)
return
}
if (tdiv.style.pixelTop>=tdiv.offsetHeight*-1){
tdiv.style.pixelTop-=5
//div开始往上滚动
setTimeout("move1(tdiv)",100)
}
else{
tdiv.style.pixelTop=scrollerheight
//指定div的高度
tdiv.innerHTML=slideimages[i]
//将图片显示在div中
if (i==slideimages.length-1 )
//如果已经循环到底,再从第一张开始循环
i=0
else
i++
}
}
function move2(mydiv)
{
tdiv2=eval(mydiv)
//获取第二个div
if (tdiv2.style.pixelTop>0&&tdiv2.style.pixelTop<=4){
//判断div的y坐标
tdiv2.style.pixelTop=0
//指定div的y坐标
setTimeout("move2(tdiv2)",pausebetweenimages)
//设置转换的时间间隔
setTimeout("move1(firstDiv)",pausebetweenimages)
return
}
if (tdiv2.style.pixelTop>=tdiv2.offsetHeight*-1){
tdiv2.style.pixelTop-=5
//第二个div开始向上滚动
setTimeout("move2(secondDiv)",100)
}
else{
tdiv2.style.pixelTop=scrollerheight
//指定第二个div的高度
tdiv2.innerHTML=slideimages[i]
//将图片显示在div中
if (i==slideimages.length -1)
//如果已经循环到底,再从第一张开始循环
i=0
else
i++
}
}
function startscroll()
//调用实现div层移动的方法
{
if (document.all){
move1(firstDiv)
secondDiv.style.top=scrollerheight
//设置第二章图片的位置
}
}
window.onload=startscroll
//窗体一架载,便开始显示图片
</SCRIPT>
</head>
<body>
<SCRIPT language="JavaScript">
if (document.all){
document.writeln('<span id="main2" style="position:relative;
width:'+scrollerwidth+';height:'+scrollerheight+';overflow:hiden;
background-color:'+scrollerbgcolor+'">')
document.writeln('<div style="position:absolute;
width:'+scrollerwidth+';height:'+scrollerheight+';
clip:rect(0 '+scrollerwidth+' '+scrollerheight+' 0);left:0;top:0">')
document.writeln('<div id="firstDiv"
style="position:absolute;width:'+scrollerwidth+';left:0;top:1;">')
document.write(slideimages[0])
document.writeln('</div>')
document.writeln('<div id="secondDiv"
style="position:absolute;width:'+scrollerwidth+';left:0;top:0">')
document.write(slideimages[1])
document.writeln('</div>')
document.writeln('</div>')
document.writeln('</span>')
}
</SCRIPT>
</body>
</html>
【运行效果】

【难点剖析】
本例重点是使用两个diV循环显示所有的图片。为了屏蔽diV的图层,需要将窗体的背景色设置为“white”(白色)。然后将第一个div的Y坐标设置为“1”,指定时间过后再让此div的y坐标自动减小,实现图层上移的效果。然后设置第二个div的y坐标,实现第二张图片的显示,依次循环显示所有的图片。
【源码下载】
为了JS代码的准确性,请点击:JS实现多幅图片分页滚动显示 进行本实例源码下载