原生JS实现 --推拉门效果图片

18 篇文章 1 订阅
10 篇文章 0 订阅

效果图片如下:
在这里插入图片描述
css代码:

<style>
    *{
        margin:0;
        padding:0;
    }
     #box{
         width: 838px;
         position: relative;
         margin: 0 auto;
     }
    .img{
        position: absolute;
        width: 50px;
        top: 0;
        overflow: hidden;
    }
    .img.first{
        width: 538px;
    }
    .img:nth-of-type(1){
        left: 0;
    }
    .img:nth-of-type(2){
        left: 538px;
    }
    .img:nth-of-type(3){
        left: 588px;
    }
    .img:nth-of-type(4){
        left: 638px;
    }
    .img:nth-of-type(5){
        left: 688px;
    }
    .img:nth-of-type(6){
        left: 738px;
    }
    .img:nth-of-type(7){
        left: 788px;
    }
</style>

html代码:

<div id="box">
    <div class="img first"><img src="./img/1.jpg" alt=""></div>
    <div class="img"><img src="./img/2.jpg" alt=""></div>
    <div class="img"><img src="./img/3.jpg" alt="" ></div>
    <div class="img"><img src="./img/4.jpg" alt="" ></div>
    <div class="img"><img src="./img/5.jpg" alt=""></div>
    <div class="img"><img src="./img/6.jpg" alt=""></div>
    <div class="img"><img src="./img/7.jpg" alt=""></div>
</div>

JS代码:

<script>
    //获取标签class
    var pushs=document.getElementsByClassName("img");
  //效果实现
    for(var i=0;i<pushs.length;i++){
       pushs[i].index=i;//得到每一项的下标
       pushs[i].onmouseover=function() {//鼠标移入事件
           if(pushs[this.index].offsetWidth==50){//每一项当前的下标 距离左侧50px(前)
               //console.log(pushs[this.index]);
               for(var j=0;j<pushs.length;j++){//初始的每个div的zIndex=j(初始时)
                   pushs[j].style.zIndex=j;//按执行顺序 来获取z-index的值
               }
               for(var m=0;m<=this.index;m++){//其它的按执行顺序的下标(执行中)
                   pushs[m].style.width="538px";
                   pushs[m].style.left=50*m+"px";
               }
               this.style.zIndex=100;//当前的z-index=100;
           }else {//(后)
              for(var n=this.index+1;n<pushs.length;n++){//当前图片后面的宽度
                  pushs[n].style.width="50px";
                  pushs[n].style.left=50*(n-1)+538+"px";//每次执行left
              }
           }
       }
    }
</script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值