什么是替代offsetLeft在internet explorer(不工作与我在ie)

what is the alternative to offsetLeft in internet-explorer (not work with me in ie)

本文关键字:工作 ie explorer offsetLeft internet 什么      更新时间:2023-09-26

我的问题很明显,不需要澄清。

我的代码
document.onkeypress = function(evt) {
                var elem = document.getElementById('box');
                evt = evt || window.event;
                var charCode = evt.charCode || evt.keyCode;
                switch (charCode) {
                    case 37:
                        elem.style.position = 'absolute';
                        elem.style.left = parseInt(elem.offsetLeft - 10) + 'px';
                        elem.innerHTML = elem.offsetLeft;
                        break;
                    case 38:
                        elem.style.position = 'absolute';
                        elem.style.top = parseInt(elem.offsetTop - 10) + 'px';
                        elem.innerHTML = elem.offsetTop;
                        break;
                    case 39:
                        elem.style.position = 'absolute';
                        elem.style.left = parseInt(elem.offsetLeft + 10) + 'px';
                        elem.innerHTML = elem.offsetLeft;
                        break;
                    case 40:
                        elem.style.position = 'absolute';
                        elem.style.top = parseInt(elem.offsetTop + 10) + 'px';
                        elem.innerHTML = elem.offsetTop;
                        break;
                    case 101:
                        elem.style.position = 'relative';
                        elem.style.left = 0 + 'px';
                        elem.style.top = 0 + 'px';
                        break;
                    default:
                }
            };

前面的示例在ff中可以正常工作,但在ie中不起作用。

offsetLeftoffsetTop在IE中不能工作的原因是什么?
有没有别的浏览器可以替代呢,有什么问题吗


在jsfiddle.

我相信一个简单的修复是改变你正在听的事件从keypress到keydown

document.onkeydown = function(evt) {

JSFiddle