轮播闪白效果

切换图片时,图片的透明图依次增加,直到为显示状态,图片一张一张切换显示,下面有相应的图片角标切换,当鼠标移到哪个角标上时,切换到那张图片上,不再切换,鼠标移出,再次切换

<!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>
原文地址:https://www.cnblogs.com/lzzhuany/p/4575125.html