键盘控制div移动,为什么向右比向左快得多?向下比向上快得多?

        var oDiv = document.getElementById('div1'),

            ev = ev || event;


        document.onkeydown = function (ev) {

            var pos=getPos(oDiv);

            switch (ev.keyCode) {

                case 37:

                    oDiv.style.left = oDiv.offsetLeft - 10 + 'px';

                    break;

                case 38:

                    oDiv.style.top = oDiv.offsetTop - 10 + 'px';

                    break;

                case 39:

                    oDiv.style.left = oDiv.offsetLeft + 10 + 'px';

                    break;

                case 40:

                    oDiv.style.top = oDiv.offsetTop + 10 + 'px';

                    break;

           

            }

        }

        

        

  刚刚找到原因了,因为我把div的定位设置成relative,后来改成absolute上下左右移动的速度就一样了.....请教各位,这个是为什么?有什么关系吗   

  再试了一下发现,即使position:relative下,把body的margin和padding值都设置为0的话,四个移动方向的速度是一样的~可我还是不知道为什么o(╥﹏╥)o

     


开心每一天1111
浏览 324回答 1
1回答

郎朗坤

看了一下。好像是style.left和offsetLeft不相等的原因。你把父元素的内外边距都设置为0应该就没问题了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript