启航暑假作业2

这次没有用到bootstrap插件所以有的布局不算特别好看还算凑活吧(* /ω\*)

html部分:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="base.css">
    <script src="animate.js"></script>
    <script src="base.js"></script>
    <title>Document</title>
</head>
<body>
    <div class="base">
        <ul>
            <li><img src="1.jpg"></li>
            <li><img src="2.jpg"></li>
            <li><img src="3.jpg"></li>
            <li><img src="4.jpg"></li>
            <li><img src="1.jpg"></li>
        </ul>
        <ol class="circle"></ol>
        <button class="btn" id="lbtn"> < </button> 
        <button class="btn" id="rbtn"> > </button>
    </div>

</body>
</html>

css部分:

.base{
    width: 1400px;
    overflow: hidden;  
    position: absolute;
    margin-left: 250px;
}
img{
    width: 1400px;
}
.btn {
    width: 60px;
    height: 100px;
    z-index: 100;
    top: 350px;
    color: #040001;
    opacity:0.5;
    display: none;
}
#lbtn {
    left: 40px;
    position: absolute; 
}
#rbtn {
    right:0px;
    position: absolute; 
}
.base ul li{
    float:left;
}
.base ul{
    width: 600%;
    list-style: none;
    top: 0;
    left: 0;
    position: absolute;
}
.circle{
    list-style: none;
    padding-right: 0px;
    right: -200px;
    bottom: 20px;
    z-index: 100px;
    height: 20px;
    margin-left: 600px;
    margin-top: 850px;
}
ol li{
    list-style: none;
    float: left;
    width: 10px;
    height: 10px;
    background-color: rgb(160, 159, 158);
    border-radius: 100%;
    margin-right: 8px;
    border-style: solid;
    border-width: 2px;
    border-color: slategray;

}
.active{
    background-color: rgb(250, 159, 159);
}

js部分:

window.addEventListener('load',function() {
        var rbtn=document.getElementById('rbtn');
        var lbtn=document.getElementById('lbtn');
        var btn=document.querySelectorAll('.btn');
        var base=document.querySelector('.base');
        var img=document.querySelector('img');
        var ul=base.querySelector('ul');
        var ol=base.querySelector('ol');
        var imgwidth=base.offsetWidth;
        var circle=0;
        base.addEventListener('mouseenter',function(){
            rbtn.style.display='block';
            btn[0].style.display='block';
            clearInterval(timer);
            timer=null;
        })
        base.addEventListener('mouseleave',function(){
            rbtn.style.display='none';
            btn[0].style.display='none';
        })
        for(var i=0;i<ul.children.length-1;i++){
            var li=document.createElement('li');
            li.setAttribute('index',i);
            ol.appendChild(li);
            li.addEventListener('click',function(){
                for(var i=0;i<ol.children.length;i++){
                    ol.children[i].className='';
                }
                this.className='active';
                var index=this.getAttribute('index');
                num=index;circle=index;
                animate(ul,-index*imgwidth-45);
            })
        }
        ol.children[0].className='active';
        var num=0;
        rbtn.addEventListener('click',function(){
            if(num==4){
                ul.style.left=0;
                num=0;
            }
            num++;
            animate(ul,-num*imgwidth-45);
            circle++;
            if(circle==4){
                circle=0;
            }
            for(var i=0;i<ol.children.length;i++)
            {
                ol.children[i].className="";
            }
            ol.children[circle].className='active';
        })
        lbtn.addEventListener('click',function(){
            if(num==0){
                ul.style.left=-4+imgwidth+'px';
                num=4;
            }
            num--;
            animate(ul,-num*imgwidth-36);
            circle--;
            if(circle<0){
                circle=3;
            }
            for(var i=0;i<ol.children.length;i++)
            {
                ol.children[i].className="";
            }
            ol.children[circle].className='active';
        })
        var timer=this.setInterval(function(){
            rbtn.click();
        },5000)
        
})

以及一些效果图:

图中没有左右按钮是因为设置了判断鼠标放上才会显示离开就不显示

自动切换是5s

鼠标放上自动清空切换时间

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值