当我分配给 element.style 时,为什么我的元素的样式没有改变?
Why isn't my element's style changing when I assign to element.style?
我正在尝试编写一个事件侦听器,通过在元素上设置 CSSStyleDeclaration 对象的属性来移动我移动鼠标的元素:
var overlay = document.getElementById('overlay');
document.body.addEventListener('mousemove',function moveOverlay(evt){
overlay.style.left = evt.clientX;
overlay.style.top = evt.clientY;
});
但是,在对 style
的 属性 的每次赋值运行后,值(在调试器中检查)不会改变 - 它仍然是默认的空字符串值 ''
. overlay.style.color = 'blue'
之类的更改有效 - 我做错了什么?
CSS 样式规则只有在句法上有效时才会被分配为 属性 值 - 如果预期值对于所讨论的 CSS 规则无效,则该操作将被忽略。 CSS 属性的数字需要一个有效的单位后缀 - 在这种情况下,需要指定位置在 像素 中。请尝试 evt.clientX + 'px'
。
我正在尝试编写一个事件侦听器,通过在元素上设置 CSSStyleDeclaration 对象的属性来移动我移动鼠标的元素:
var overlay = document.getElementById('overlay');
document.body.addEventListener('mousemove',function moveOverlay(evt){
overlay.style.left = evt.clientX;
overlay.style.top = evt.clientY;
});
但是,在对 style
的 属性 的每次赋值运行后,值(在调试器中检查)不会改变 - 它仍然是默认的空字符串值 ''
. overlay.style.color = 'blue'
之类的更改有效 - 我做错了什么?
CSS 样式规则只有在句法上有效时才会被分配为 属性 值 - 如果预期值对于所讨论的 CSS 规则无效,则该操作将被忽略。 CSS 属性的数字需要一个有效的单位后缀 - 在这种情况下,需要指定位置在 像素 中。请尝试 evt.clientX + 'px'
。