javascript 实现图片轮播和点击切换功能

图片轮播是网页上一个比较常见的功能,下面我们来实现他吧

原理很简单:

1:固定的区域,所有的图片重叠,一次只能显示一张图片

2:通过改变图片的zIndex属性改变显示的图片,就可以达到切换的效果了

<!-- cycle_pic.html -->
<!DOCTYPE html>
<html>
<head>
    <title>cycle_pic</title>
    <meta charset="utf-8">
    <meta content="text/html" http-equiv="Content-Type">
    <style type="text/css">
        #slideshow_wrapper {
            POSITION: relative;
            PADDING-BOTTOM: 0px;
            BACKGROUND-COLOR: #121212;
            PADDING-LEFT: 0px;
            WIDTH: 650px;
            PADDING-RIGHT: 0px;
            HEIGHT: 400px;
            OVERFLOW: hidden;
            PADDING-TOP: 0px
        }
        #slideshow_footbar {
            Z-INDEX: 5;
            POSITION: absolute;
            FILTER: alpha(opacity=50);
            WIDTH: 100%;
            BOTTOM: 0px;
            HEIGHT: 30px;
            background-color: black;
            opacity:0.5;
        }
        #slideshow_photo {
            POSITION: absolute;
            WIDTH: 100%;
            HEIGHT: 100%;
            CURSOR: pointer
        }
        #slideshow_photo A {
            Z-INDEX: 1;
            BORDER-BOTTOM: 0px;
            POSITION: absolute;
            BORDER-LEFT: 0px;
            MARGIN: 0px;
            DISPLAY: block;
            BORDER-TOP: 0px;
            TOP: 0px;
            BORDER-RIGHT: 0px;
            LEFT: 0px
        }
        #slideshow_footbar .slideshow-bt {
            BACKGROUND-COLOR: #d2d3d4;
            MARGIN: 10px 10px 0px 0px;
            WIDTH: 10px;
            DISPLAY: inline;
            FLOAT: right;
            HEIGHT: 10px;
            FONT-SIZE: 0px
        }
        #slideshow_footbar .bt-on {
            BACKGROUND-COLOR: red;
        }
</style>
<script type="text/javascript" charset="utf-8">
    var curIndex=1;//初始换显示第一张
    function slideTo (index) {
        var index = parseInt(index);
        var pic = document.getElementById("slideshow_photo").childNodes;
        for(var i=0;i<pic.length;i++){//改变zIndex属性
            if(pic[i].attributes && pic[i].attributes[index] && parseInt(pic[i].attributes[index].value)==index){
                pic[i].style.zIndex=2;
                curIndex=index;
            }
            else if(pic[i].attributes && pic[i].attributes[index]) {
                pic[i].style.zIndex=1;
            }
        }
        var bts = document.getElementsByClassName("slideshow-bt");
        for(var i=0;i<bts.length;i++){//改变显示的效果
            if(parseInt(bts[i].attributes[index].value)==index){
                bts[i].className="slideshow-bt bt-on";
            }
            else bts[i].className = "slideshow-bt";
        }
    }
    window.onload = function  () {    //为按钮初始化onclick事件
        var bts = document.getElementsByClassName("slideshow-bt");
        for(var i=0;i<bts.length;i++){
            bts[i].onclick = function  () {
                slideTo(this.attributes[index].value);
            }
        }
    }
    setInterval(function  () {//循环切换
        if(curIndex+1>5) curIndex=0;
        slideTo(curIndex+1);
    },2000);
</script>
</head>
<body>
    <div id="slideshow_wrapper">
        <div id="slideshow_photo">
            <a href="#" title="" index="1"><img src="./num/1.jpg" width="650px;" alt="1" border="0px;"></a>
            <a href="#" title="" index="2"><img src="./num/2.jpg" width="650px;" alt="2" border="0px;"></a>
            <a href="#" title="" index="3"><img src="./num/3.jpg" width="650px;" alt="3" border="0px;"></a>
            <a href="#" title="" index="4"><img src="./num/4.jpg" width="650px;" alt="4" border="0px;"></a>
            <a href="#" title="" index="5"><img src="./num/5.jpg" width="650px;" alt="5" border="0px;"></a>
        </div>
        <div id="slideshow_footbar">    
            <div class="slideshow-bt" index="5"></div>
            <div class="slideshow-bt" index="4"></div>
            <div class="slideshow-bt" index="3"></div>
            <div class="slideshow-bt" index="2"></div>
            <div class="slideshow-bt" index="1"></div>
        </div>
    </div>
</body>
</html>

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。