天天看點

焦點圖,輪播圖效果

html:

<!DOCTYPE html>

<html >

<head>

    <meta charset="UTF-8">

    <title>輪播圖</title>

    <link rel="stylesheet"  href="static/css/lun_bo_style1.css" target="_blank" rel="external nofollow" >

    <script src="static/js/lun_bo_js1.js"></script>

</head>

<body>

<div id="wrap">

    <ul>

        <li class="active"><a><img src="static/imgs/1.jpg"></a></li>

        <li><a><img src="static/imgs/2.jpg"></a></li>

        <li><a><img src="static/imgs/3.jpg"></a></li>

        <li><a><img src="static/imgs/4.jpg"></a></li>

        <li><a><img src="static/imgs/5.jpg"></a></li>

        <li><a><img src="static/imgs/6.jpg"></a></li>

        <li><a><img src="static/imgs/7.jpg"></a></li>

        <li><a><img src="static/imgs/8.jpg"></a></li>

    </ul>

    <div id="list-num">

        <ul>

            <li class="list-active"></li>

            <li></li>

            <li></li>

            <li></li>

            <li></li>

            <li></li>

            <li></li>

            <li></li>

        </ul>

    </div>

    <div id="left"> < </div>

    <div id="right"> > </div>

</div>

</body>

</html>

css:

body,div,ul,li,a,img,html{

    margin:0;

    padding:0;

}

li{

    list-style:none;

}

a{

    text-decoration:none;

}

#wrap{

    width:790px;

    height:340px;

    margin:40px auto;

    border:1px solid #ccc;

    position:relative;

}

#wrap>ul>li{

    opacity:0;

    position:absolute;

    top:0;

    left:0;

    transition:opacity 0.4s linear;

}

#wrap>ul>.active{

    opacity:1;

}

#list-num{

    width:150px;

    height:16px;

    background:rgba(255,255,255,0.3);

    border-radius:16px;

    position:absolute;

    bottom:20px;

    left:50%;

    margin-left:-75px;

}

#list-num>ul>li{

    width:11px;

    height:11px;

    border-radius:11px;

    background:rgba(255,255,255,0.6);

    float:left;

    margin-left:7px;

    margin-top:2.5px;

}

#list-num>ul>.list-active{

    background:red;

}

#right,#left{

    width:30px;

    height:60px;

    color:#fff;

    font-size:24px;

    background:rgba(0,0,0,0.3);

    position:absolute;

    top:50%;

    margin-top:-30px;

    line-height:60px;

    text-align:center;

    cursor:pointer;

    display:none;

}

#right{

    right:0;

}

#right:hover,#left:hover{

    background:rgba(0,0,0,0.6);

}

js:

 window.onload = function(){

//    擷取最外層div

    var oDiv = document.getElementById("wrap");

//    通過div得到圖檔的li(通過children子元素獲得;children[0]得到的是div的第一個子元素)

    var lis = oDiv.children[0].children;

//    擷取小圓點外div

    var oDiv1 = document.getElementById("list-num");

    var lists = oDiv1.children[0].children;

    // console.log(lists);

//    設一個index代表li的第一個索引

    var index = 0;

    var len = lis.length;

//    焦點圖自動切換;

    var run;

    function playgo(){

        //    因為下段代碼會循環執行,是以用定時器,一直執行下去;

        run = setInterval(function(){

            // 上一個li去掉class為active  下一個增加class

           // 下邊小圓點的效果;

    //1.小圓點跟着焦點圖切換背景顔色;小圓點的index與上邊的li是一樣的

            removeClass(index);

            index++;//++後就是下一個div

            if(index == len){

                index = 0;

            }

            addClass(index);

        },2000);

    }

    playgo();

//滑鼠移到外邊大的div上的時候焦點圖停止切換;

//    焦點圖停止切換即停止上邊的定時器;滑鼠滑到div上的時候,左右按鈕出現;

    oDiv.onmouseover = function(){

        clearInterval(run);

        left.style.display = "block";

        right.style.display = "block";

    }

//     滑鼠離開div定時器開啟;

    oDiv.onmouseout = function(){

        playgo();

        left.style.display = "none";

        right.style.display = "none";

    }

for(var i = 0;i<lists.length;i++){

    lists[i].onmouseover = (function(i){

        return function(){

            removeClass(index);

            index = i;

            addClass(index);

        }

    })(i);

}

//滑鼠點選左邊按鈕的效果;

left.onclick = function(){

    removeClass(index);

    index--;

    if(index < 0){

       index = len-1;

    }

    addClass(index);

}

//滑鼠點選右邊按鈕的效果;

    right.onclick = function(){

        removeClass(index);

        index++;

        if(index == len){

            index = 0;

        }

        addClass(index);

    }

    function removeClass(i){

        lis[i].removeAttribute("class");

        lists[i].removeAttribute("class");

    }

    function addClass(i){

        lis[i].setAttribute("class","active");

        lists[i].setAttribute("class","list-active");

    }

}

個人總結,希望對你們有用;