【JSP笔记】嵌套div的页面滚动

首先是代码

<style>
    *{
        margin:0;
        padding: 0;
    }
    .outside{
        height: 400px;
        width: 400px;
        background-color: yellow;
    }
    .inside{
        position:relative;
        height: 50px;
        width: 50px;
        left: 0px;
        top:0px;
        background-color: red;
    }
</style>
<body>
<button id="start" >开始</button>
<div class="outside" id="outside" >
    <div class="inside" id="inside"></div>
</div>
</body>
<script>

var outside=document.getElementById('outside');
    var inside=document.getElementById('inside');
    var start=document.getElementById('start');
    var i=0,progress=null;
    start.onclick= function (){
       progress=setInterval(function () {
        if(i<2){
                i=i+1;
                left1=inside.offsetLeft;
                console.log(left1);
                left1=left1+50;
                console.log(left1);
                inside.style.left=left1+'px';
                console.log(inside.style.left);
         }  
         else{
            clearInterval(progress);
         }
       }, 30);
    }
</script>

首先要注意的是嵌套div要滚动的话滚动的那个div要设置一个相对位置relative,外套的div倒是无所谓,否则其不会滚动,这个地方我D了好久BUG,因为代码逻辑没问题一度以为是offset已经不支持改变了。。
第二个是要注意在改变style.left的值的时候不要加下面的东西
inside.style.left=inside.style.left+left1+'px';
就是不要加自身,不然每次这玩意都会归零。。。原理我暂时也不知道,先摁记吧。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值