Javascript 新元素与风格?
我有这个样式表:Javascript 新元素与风格?,javascript,css,internet-explorer,Javascript,Css,Internet Explorer,我有这个样式表: .pixel{ position: absolute; height: 10px; width: 10px; background-color: #ffcc00; font-size: 0px; } 这个javascript: function drawpixel(x,y){ el = document.createElement('div'); el.setAttribute('class','pixel');
.pixel{
position: absolute;
height: 10px;
width: 10px;
background-color: #ffcc00;
font-size: 0px;
}
这个javascript:
function drawpixel(x,y){
el = document.createElement('div');
el.setAttribute('class','pixel');
el.style.left = x;
el.style.top = y;
/* IE needs this for some reason?
el.style.position = "absolute";
el.style.backgroundColor = "#FFCC00";
el.style.width = "2px";
el.style.height = "2px";
*/
el.style.fontSize = "0px";
el.style.lineHeight = "0px";
document.body.appendChild(el);
}
function mover(event){
element = document.getElementById("coords");
element.innerHTML = event.clientX + " " + event.clientY;
drawpixel(event.clientX, event.clientY);
}
这让我可以用div“画画”。但是IE需要这4行注释——不知为什么它不会读取类信息
有没有更简单的方法来“修复”IE,或者我几乎只需要这4行代码
感谢IE()中的您需要更改以下内容:
el.setAttribute('class','pixel');
到
IE对
setAttribute()
的实现在IE8(在IE8标准模式下运行)之前已被严重破坏只需使用el.className=“pixel”代码>
只是我注意到了一些别的东西。我知道问题表明这是针对IE的,但看起来您正在事件处理程序中使用mover(event)
。如果你正在使用Firefox和其他浏览器,你可能需要考虑对这样的移动函数进行编码:
function mover(evt){
evt = evt || event;
element = document.getElementById("coords");
element.innerHTML = evt .clientX + " " + evt .clientY;
drawpixel(evt.clientX, evt.clientY);
}
你打算绘制多少像素,因为这将非常非常糟糕。有趣的是,我可以在Chrome中以相当大的延迟绘制/massive/amounts,但在IE中仅绘制相对较少的像素会导致严重的延迟/崩溃。你不应该尝试使用setAttribute()
设置类名。只需使用el.className
即可。只要使用className
,使用setAttribute()
就完全可以了。我不会因为旧的IE遗留版本无法正确实现规范(end rant)而避免使用标准的ECMAScript DOM操作方法。我发现,IE的所有实现都被严重破坏了。然而,el.className可以追溯到IE 5,这应该是我必须支持的最远的版本。这些都是内部网站,现在我只是在学习web前端的东西,学习讨厌Internet Explorer的新的令人兴奋的原因。className
回到IE 4。另外,className
在所有主要的可编写脚本的浏览器中都能统一工作,因为IE 4并没有变得如此标准或没有标准,它是最好的使用方式。我很遗憾目前在现有项目上支持IE6,但新项目根本不支持IE6。至于IE5.5、IE5和IE4——它们超越了死气沉沉的浏览器——我拒绝支持它们。我以前试过el.className,但我想其他东西不起作用。对于事件,我读过的教程实际上就是这样使用事件的。谢谢你的更正!您的event.clientX
和event.clientY
应该是evt.clientX
和evt.clientY
。
function mover(evt){
evt = evt || event;
element = document.getElementById("coords");
element.innerHTML = evt .clientX + " " + evt .clientY;
drawpixel(evt.clientX, evt.clientY);
}