getcomputedstyle对象javascript问题
我对getComputedStyle方法有问题。我试图在单击时获取元素的左属性和上属性 我可以访问“left”属性,但“top”属性返回的是对象而不是字符串 我在元素数组中循环,附加两个事件侦听器。 单击事件触发后,当我按下目标div上的向下键时,我可以从左向右移动,但向上/向下不做任何操作。顶部样式返回窗口对象 我还在代码的前面部分中定义了左侧和顶部的css声明 任何帮助都将不胜感激getcomputedstyle对象javascript问题,javascript,Javascript,我对getComputedStyle方法有问题。我试图在单击时获取元素的左属性和上属性 我可以访问“left”属性,但“top”属性返回的是对象而不是字符串 我在元素数组中循环,附加两个事件侦听器。 单击事件触发后,当我按下目标div上的向下键时,我可以从左向右移动,但向上/向下不做任何操作。顶部样式返回窗口对象 我还在代码的前面部分中定义了左侧和顶部的css声明 任何帮助都将不胜感激 Object.keys(source_boxes).forEach(function(key){
Object.keys(source_boxes).forEach(function(key){
source_boxes[key].addEventListener('click',function(){
clicked = true;
elem = source_boxes[key];
});
document.addEventListener('keydown',function(e){
e.preventDefault();
if(clicked == true){
css = getComputedStyle(elem);
top =parseInt(css['top']);
left =parseInt(css['left']);
if(e.code ==="ArrowUp"){
top = top -5;
elem.style.top = top +'px';
}else if(e.code ==="ArrowDown"){
top = top +5;
elem.style.top = top +'px';
}else if(e.code ==="ArrowLeft"){
left = left -5;
elem.style.left = left +'px';
}else if(e.code ==="ArrowRight"){
left = left +5;
elem.style.left = left +'px';
}
}
});
});
top
如果没有var
,const
或let
关键字将映射到隐式全局窗口。top
是且不能设置的。应避免使用隐式声明的全局变量。在您的css
之前添加var
,let
或const
,top
和left
变量同样,如何调试从css['top']
和css['left']
获得的值?感谢您的正确,我更改了变量命名约定,似乎已经修复了它。我已经调试过了,css['top']出于某种原因一直返回一个对象。根据您的建议,我更改了变量名并使用了var,现在它正在工作。非常感谢!