本文实例讲述了javascript+html5实现仿flash滚动播放图片的方法。分享给大家供大家参考。具体如下:
html部分:
<!DOCTYPE html> <html> <head lang=\"en\"> <meta charset=\"UTF-8\"> <title></title> <script src=\"move.js\" type=\"text/javascript\"></script> <link href=\"css.css\" type=\"text/css\" rel=\"stylesheet\"> </head> <body> <div id=\"playImages\" class=\"play\"> <ul class=\"big_pic\"> <div class=\"prev\"></div> <div class=\"next\"></div> <a class=\"mark_left\" href=\"javascript:;\"></a> <a class=\"mark_right\" href=\"javascript:;\"></a> <li style=\"z-index: 1\"><img src=\"image/1.JPG\"></li> <li><img src=\"image/2.JPG\"></li> <li><img src=\"image/3.JPG\"></li> <li><img src=\"image/4.JPG\"></li> <li><img src=\"image/5.JPG\"></li> <li><img src=\"image/6.JPG\"></li> </ul> <div class=\"small_pic\"> <ul> <li><img src=\"image/1.JPG\"></li> <li><img src=\"image/2.JPG\"></li> <li><img src=\"image/3.JPG\"></li> <li><img src=\"image/4.JPG\"></li> <li><img src=\"image/5.JPG\"></li> <li><img src=\"image/6.JPG\"></li> </ul> </div> </div> </body> </html>
css部分:
body{ margin: 0px; padding: 0px; }
ul{ margin: 0px; padding: 0px; }
li{ list-style: none; }
.play{ width: 600px; height: 550px; left: 30px; top: 20px;
position: relative; border: 2px solid black;
}
.big_pic{ width: 600px; height: 400px; position: relative;
background: snow; overflow: hidden;
}
.big_pic li{ width: 600px; height: 400px; overflow:hidden;
position: absolute; background: black; z-index: 0
}
.big_pic li img{ width: 600px; height: 400px;
position: absolute;
}
.mark_left{ width: 300px; height: 400px;
background: orange; position: absolute; left: 0px; top: 0px;
z-index: 3000; filter: alpha(opacity:0); opacity: 0;
}
.mark_right{ width: 300px; height: 400px; background: cornflowerblue;
position: absolute; left: 300px; top: 0px;
z-index: 3000; filter: alpha(opacity:0); opacity: 0;
}
.prev{ width: 60px; height: 60px;
background: url(image/btn.gif) no-repeat; position: absolute;
z-index: 3001; top: 170px; left: 10px; cursor: pointer;
filter: alpha(opacity:0); opacity: 0;
}
.next{ width: 60px; height: 60px;
background: url(image/btn.gif) no-repeat 0 -60px;
position: absolute; z-index: 3001; top: 170px; right: 10px;
cursor: pointer; filter: alpha(opacity:0); opacity: 0;
}
.small_pic{ width: 594px; height: 144px;
position: relative;top: 0;left: 0;
border: 3px solid paleturquoise;overflow: hidden;
}
.small_pic ul{ width: 594px; height: 144px;
position: absolute; left: 0px;top: 0px;
}
.small_pic li img{ width: 194px; height: 140px; }
.small_pic ul li{ border:2px solid paleturquoise;
width: 194px; height: 140px; float: left;
cursor: pointer; filter: alpha(opacity:60); opacity: 0.6;
}
JS部分:
window.onload=function(){
var oPlay=document.getElementById(\'playImages\');
var uBig=getClass(oPlay,\'big_pic\')[0];
var uSmall=getClass(oPlay,\'small_pic\')[0];
var oPrev=getClass(oPlay,\'prev\')[0];
var oNext=getClass(oPlay,\'next\')[0];
var aLeft=getClass(oPlay,\'mark_left\')[0];
var aRight=getClass(oPlay,\'mark_right\')[0];
var oUlSmall=uSmall.getElementsByTagName(\'ul\')[0];
var oSli=uSmall.getElementsByTagName(\'li\');
var oBli=uBig.getElementsByTagName(\'li\');
oUlSmall.style.width=oSli[0].offsetWidth*oSli.length+\'px\';
oPrev.onmouseover=aLeft.onmouseover=function(){
move(oPrev,100,\'opacity\');
};
oPrev.onmouseout=aLeft.onmouseout=function(){
move(oPrev,0,\'opacity\');
};
oNext.onmouseover=aRight.onmouseover=function(){
move(oNext,100,\'opacity\');
};
oNext.onmouseout=aRight.onmouseout=function(){
move(oNext,0,\'opacity\');
};
var index=0;
var newZIndex=2;
for (var i=0;i<oSli.length;i++){
oSli[i].num=i;
oSli[i].onclick=function(){
if(this.num==index) {
return;
} else{
index=this.num;
tab();
}
};
oSli[i].onmouseover=function(){
move(this,100,\'opacity\');
};
oSli[i].onmouseout=function(){
if(this.num!=index){
move(this,60,\'opacity\');
}
};
}
oPrev.onclick=function(){
index--;
if(index==-1){
index=oSli.length-1;
}
tab();
};
oNext.onclick=function(){
index++;
if(index==oBli.length){
index=0;
}
tab();
};
function tab() {
oBli[index].style.height = 0;
oBli[index].style.zIndex = newZIndex++;
move(oBli[index], 400, \'height\');
for (var i = 0; i < oSli.length; i++) {
move(oSli[i], 60, \'opacity\');
}
move(oSli[index], 100, \'opacity\');
if (index == 0) {
move(oUlSmall, 0, \'left\');
} else if (index == oSli.length - 1) {
move(oUlSmall, -(index - 2) * oSli[0].offsetWidth, \'left\');
} else {
move(oUlSmall, -(index - 1) * oSli[0].offsetWidth, \'left\');
}
};
var timer=setInterval(oNext.onclick,3000);;
oPlay.onmouseover=function(){
clearInterval(timer);
};
oPlay.onmouseout=function(){
timer=setInterval(oNext.onclick,3000);
};
};
function getStyle(obj,name){
if(obj.currentStyle){
return obj.currentStyle[name];
}else{
return getComputedStyle(obj,false)[name];
}
};
function move(obj,iTarget,name){
clearInterval(obj.timer);
obj.timer=setInterval(function(){
var cur=0;
if(name==\'opacity\'){
cur=Math.round(parseFloat(getStyle(obj,name))*100);
}else{
cur=parseInt(getStyle(obj,name));
}
var speed=(iTarget-cur)/30;
speed=speed>0?Math.ceil(speed):Math.floor(speed);
if(cur==iTarget){
clearInterval(obj.timer);
}else{
if(name==\'opacity\'){
obj.style.opacity=(cur+speed)/100;
obj.style.filter=\'alpha(opacity:\'+cur+speed+\')\';
}else{
obj.style[name]=cur+speed+\"px\";
}
}
},30);
};
function getClass(oParent,name){
var oArray=[];
var oBj=oParent.getElementsByTagName(\'*\');
for(var i=0;i<oBj.length;i++){
if(oBj[i].className==name){
oArray.push(oBj[i]);
}
}
return oArray;
}
希望本文所述对大家的javascript程序设计有所帮助。
本文地址:https://www.stayed.cn/item/8768
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我