next.onclick = function() {
move('left', li_items[0]);
};
var move = function(direction, el) {
pos = el.style[direction].split('px')[0];
pos = parseInt(pos, 10) + 10;
el.style[direction] = pos + 'px';
};
我正在使用上面的简单代码来尝试移动一个元素。现在,当我在此断点时,el.style[direction]
的值为:""
。所以当我尝试用它做任何事情时,它就坏了。为什么会这样? style.left
不是应该返回一个整数吗?
最佳答案
Why would this be?
大概是因为它还没有被设置成任何东西。
Isn't style.left supposed to return an integer?
没有。它应该返回一个字符串,其中包含直接在元素上设置的 CSS left 属性的值(通过设置 JS 属性本身或使用样式属性)。它不会从级联中获取值,如果值为 0(因为所有其他长度都需要单位),它应该只是一个整数。
参见 How to get computed style of a HTMLElement如果您想获取属性的计算值而不是我在上一段中描述的值。
关于Javascript style.left 为空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10610015/