切换图片时,图片的透明图依次增加,直到为显示状态,图片一张一张切换显示,下面有相应的图片角标切换,当鼠标移到哪个角标上时,切换到那张图片上,不再切换,鼠标移出,再次切换
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>闪白效果</title>
<style type="text/css">
#div1{
730px;
height:454px;
background: 1px solid blue;
margin:0 auto;
position: relative;
}
#div1 img{
position: absolute;
display: none;
}
#div1 img.cur{
display:block;
}
#div1 ul{
position: absolute;
right:0px;
top:400px;
}
#div1 ul li{
float: left;
list-style: none;
background: #3E3E3E;
25px;
height: 25px;
line-height: 25px;
text-align: center;
color:white;
margin-right:10px;
border-radius: 12px;
}
#div1 ul .cur{
background:#B61B1F;
}
</style>
<script type="text/javascript">
window.onload=function(){
var oDiv=document.getElementById('div1');//获得div1元素
var aimg=oDiv.getElementsByTagName('img');//获得img元素
var ali=oDiv.getElementsByTagName('li');//获得li标签
var index=0;//定义全局变量,记录切换样式的角标
function qiehuan(){//切换图片的方法
index++;//角标加1
if(index==6){//如果角标为6,直接变成0,因为有6张图片,最大角标为5
index=0;
}
for(var i=0;i<aimg.length;i++){//将所有图片隐藏
aimg[i].style.display='none';
}
shanbai();//对index号进行闪白
for(var i=0;i<ali.length;i++){//将所有li的class都去掉,都不显示
ali[i].className='';
}
ali[index].className='cur';//根据角标依次添加cur属性,依次显示
}
var timer=setInterval(qiehuan,1000);//定义定时器,每1秒切换一张图片
for(var i=0;i<ali.length;i++){//for循环,添加事件
ali[i].onmouseover=function(e){//鼠标移入li事件
clearInterval(timer);//关闭定时器
var ev=e||window.event;
var curo=ev.srcElement||ev.target;//获得事件对象,
for(var j=0;j<ali.length;j++){
if(ali[j]==curo){
index=j;//鼠标移到哪个li标签上,将角标赋给index
}
}
for(var i=0;i<aimg.length;i++){//将所有的图片隐藏
aimg[i].style.display='none';
}
shanbai();//对index号进行闪白
for(var i=0;i<ali.length;i++){//让相应的li变样式
ali[i].className='';
}
ali[index].className='cur';
}
ali[i].onmouseout=function(){//鼠标移出,重新开定时器
timer=setInterval(qiehuan,1000);
}
}
function shanbai(){//闪白效果
aimg[index].style.display='block';//让对应的图片显示
aimg[index].style.opacity=0;//透明度变为0
aimg[index].style.filter='alpha(opacity=0)';
var toumingdu=0;
touming=setInterval(function(){//设置定时器,让透明度依次增加
toumingdu++;
aimg[index].style.opacity=toumingdu/100;
aimg[index].style.filter='alpha(opacity='+toumingdu+')';
if(toumingdu==100){//如果透明度为100,停止定时器,提高效率
clearInterval(touming);
}
},2);
}
}
</script>
</head>
<body>
<div id="div1">
<img class="cur" src="1.jpg" alt="第一张">
<img src="2.jpg" alt="第二张">
<img src="3.jpg" alt="第三张">
<img src="4.jpg" alt="第四张">
<img src="5.jpg" alt="第五张">
<img src="6.jpg" alt="第六张">
<ul>
<li class="cur">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
</div>
</body>
</html>