轮播图代码

效果:


 



图片自动播放原理
1.  所有轮播的图片水平排列在一条线放在div2中。div2嵌套在div1中。
1.  div1设置css:overflow:hidden即溢出则隐藏。
3.  div2每隔5s向左移动距离=一张图片的宽度*n。
4.   n++。
5.   直到展示完毕最后一张图,n重置为0。
按钮跟随图片的移动背景色相应改变原理
1.  自动播放的时候调用这个函数
2.   根据传递的参数n的值,得到button的index
3.  将该index的button元素的classname设置为on,其他设置为off
 


html代码:

<div class="lunbo">
 <div class="lunbo-inner" id="lunbo-inner">    
     <img id="lunbo-img" class="lunbo-img" src="8.jpg">  
     <img class="lunbo-img" src="10.jpg"> 
     <img class="lunbo-img" src="9.jpg"> 
     <img class="lunbo-img" src="3.jpg">  
     <img class="lunbo-img" src="5.jpg">	 
     <img class="lunbo-img" src="8.jpg"> 	 
 </div>
 <div id="btn">
   <button class="on" index="1"></button>
   <button index="2"></button>
   <button index="3"></button>
   <button index="4"></button>
   <button  index="5"></button>
 </div>
</div>

js代码

window.onload=function(){

/*-------------------------------轮播图start--------------------------------*/

var dot=document.getElementById("btn").getElementsByTagName("button");

var x=document.getElementById("lunbo-inner");

    var y=document.getElementsByClassName("lunbo-img");

    var wid=$("#lunbo-img").width();

    var num=y.length-1;

    //var lun=1;

var lun=0;


    /*下标button背景色*/
function see(index){

for(var j=0;j<5;j++){

if(dot[j].className == "on"){

dot[j].className='off';

break;

}}

dot[index].className="on";

}




/*图片自动切换*/

function play(){

     timer=setInterval(function(){

        if(lun<num){

            x.style.transform="translate3d("+(-wid*lun)+"px, 0px, 0px)";

            x.style.transition="transform 1s ease 0s";

            see(lun);

        lun++;

        }else if(lun==num){

            x.style.transform="translate3d("+(-wid*lun)+"px, 0px, 0px)";

            x.style.transition="transform 1s ease 0s";

see(0);

lun++;

        }

        else if(lun>num){

            x.style.transform="translate3d(0px, 0px, 0px)";

            x.style.transition="transform 0s ease 0s";

            lun=1;

            see(0);

        }

    },1600);

}

play();



/*点击button切换图片*/

for(var s=0;s<num;s++){

dot[s].onclick=function(){

    clearInterval(timer);

    var index=this.getAttribute("index")-1;

     x.style.transform="translate3d("+(-wid*index)+"px, 0px, 0px)";

    x.style.transition="transform 1s ease 0s";

see(index);

    lun =index;

    play();

}}




/*------------------------------------轮播图end------------------------------------------*/

var hover=document.getElementsByClassName("wrap");

var two=document.getElementsByClassName("two");

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

hover[i].onmouseover=function(){

var j=this.getAttribute("index");

two[j].style.transform="translateY(-190px)";

two[j].style.transition="transform 0.8s ease";

}

hover[i].onmouseout=function(){

var j=this.getAttribute("index");

two[j].style.transform="translateY(0px)";

two[j].style.transition="transform 0.8s ease";

}

}


    /*----------------------导航栏start----------------*/

    $("#menu").click(function(){

        $("#nav").toggle();

    }) //移动端导航栏



$(".choose").click(function(){

    var nums=this.getAttribute("index");

        $("#nav").find("div[index="+nums+"]").toggle();



})

    var choose=document.getElementsByClassName("choose");

    var showindex=document.getElementsByClassName("up");

    var showindex=document.getElementById("nav").getElementsByTagName("div");



    for(var i=0;i<7;i++){

    choose[i].onmouseover=function(){

        var nums=this.getAttribute("index");

        showindex[nums].style.display="block";

    }

    choose[6].onmouseover=function(){

        showindex[4].style.display="block";

    }



    choose[i].onmouseout=function(){

        var nums=this.getAttribute("index");

            showindex[nums].style.display="none";

    }

    choose[6].onmouseout=function(){

        showindex[4].style.display="none";

    }

    showindex[i].onmouseover=function(){

        this.style.display="block";

    }

    showindex[i].onmouseout=function(){

        this.style.display="none";

    }

    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值