跨浏览器 - IE JavaScript 设置 style.left 不起作用

cross browser - IE javascript setting style.left not working

本文关键字:style left 不起作用 设置 JavaScript 浏览器 IE      更新时间:2023-09-26

嘿,
我正在努力为通过 javascript 创建的div 设置样式属性。流程为:

  1. 脚本加载
  2. 它创造了一个<div id="test">
  3. 它设置属性style="top: 20px; left: 10px; margin: 0px; position: absolute;"

所有其他浏览器都可以正常工作,但是当涉及到IE时,事情就不起作用了。如何在IE中设置这些样式属性?到目前为止,使用此代码:

var div = document.getElementById('test');
div.style.left     = "10px";
div.style.top      = "20px";
div.style.margin   = "0px";
div.style.position = "absolute !important";

我能够设置顶部,保证金和位置。Style.left是不可能的。

在所有浏览器中处理样式属性时的最佳方法是什么?

@IE不工作版本:7,8。(在 6 和 9 下没有尝试过)

经过几个小时的调试代码,我终于设法把它做好了。问题是我有一个返回数字的变量。该变量是某些计算的基础,在设置div.style.left 时使用。因此,变量有时会返回导致疼痛的 NaN。:)感谢大家的努力和花时间试图帮助!:)

交易时的最佳方法是什么 在所有浏览器中都有样式属性?

只需设置div.className并将所有CSS移动到CSS文件。

div.style.cssText="top: 20px; left: 10px; margin: 0px; position: absolute;"

请记住,div'es 位置是相对于其父元素的 - 一些旧的 IE 需要将父元素位置设置为相对或绝对,具体取决于文档类型。

function MuoveOnClickPosition(YourDIVObject) {
//numeric variables.
tempX = event.clientX;
tempY = event.clientY;
// String variables
var X, Y ;
X = tempX + 'px'; 
Y = tempY + 'px'; 
document.getElementById(YourDIVObject).style.left = X;
document.getElementById(YourDIVObject).style.top = Y;
}

应该工作..有时IE需要字符串格式的"XXXpx"。这取决于 DOC 类型。

重要的是杀死绝对的位置。甚至无法在火狐中工作。在 JSBIN 上测试