js运动遇到的问题之一(postion)

4 篇文章 0 订阅

js运动遇到的问题之一(postion)

今天在学习js运动的时候遇到了一个问题,在给js加运动时,js不运动,逻辑代码完整,看了答案发现只有css代码不一样,尝试和答案一样

之后,果然可以,但是多添加三个css属性,利用排除法,发现是postion问题。刚开始没有加position,导致即使用element.style.left设置了

距离HTML的左边距它也不运动

element.offsetHeight返回元素的高度。
element.offsetWidth返回元素的宽度。
element.offsetLeft返回元素的水平偏移位置。
element.offsetParent返回元素的偏移容器。
element.offsetTop返回元素的垂直偏移位置。

原因如下;

在设置样式时:

static默认。位置设置为 static 的元素,它始终会处于页面流给予的位置(static 元素会忽略任何 top、bottom、left 或 right 声明)。

relative位置被设置为 relative 的元素,可将其移至相对于其正常位置的地方,因此 “left:20” 会将元素移至元素正常位置左边 20 个像素的位置。

absolute位置设置为 absolute 的元素,可定位于相对于包含它的元素的指定坐标。此元素的位置可通过 “left”、“top”、“right” 以及 “bottom” 属性来规定。

fixed位置被设置为 fixed 的元素,可定位于相对于浏览器窗口的指定坐标。此元素的位置可通过 “left”、“top”、“right” 以及"bottom" 属性来规定。不论窗口滚动与否,元素都会留在那个位置。工作于 IE7(strict 模式)。

3.left 属性设置定位元素左外边距边界与其包含块左边界之间的偏移。如果 “position” 属性的值为 “static”,那么设置 “left” 属性不会产生任何效果。

<head>
    <meta charset="UTF-8">
    <title>document</title>
    <script>  
           window.onload = function(){
            var obtn = document.getElementById('btn');
            var box = document.getElementById('hezi');
            obtn.onclick = function(){ 
               setInterval(function(){
                box.style.left =  box.offsetLeft+10+'px';
            },30);
            }         
        }
    </script>
</head>
<body>
    <input type="submit" id="btn" value="运动" >
    <div id="hezi" style=" width: 100px; height: 100px;background-color: red;position: absolute;"></div>
</body>
</html>

转载于https://www.cnblogs.com/zhuni/p/4707711.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值