1 回答
TA贡献1795条经验 获得超7个赞
用引号“填充” styleString 并不能帮助它注册为字符串。相反,它只是在字符串末尾添加引号。这不是按510px预期创建一个字符串,而是创建一个包含 content 的字符串"510px",这对于 CSS 来说是无效输入,因此 Javascript 只是忽略它而不执行任何操作。
相反,你应该写一些类似的东西let styleString = newOffset + "px"。JavaScript 将为您完成字符串转换。
例子:
var block = document.getElementById("block");
var otherBlock = document.getElementById("otherBlock");
function testNoWork() {
let styleString = '"' + String(block.offsetLeft+20) + 'px"'
block.style.left = styleString;
}
function testWorks() {
let styleString = (otherBlock.offsetLeft+20) + 'px'
otherBlock.style.left = styleString;
}
setInterval(testWorks, 1000);
setInterval(testNoWork, 1000);
#block, #otherBlock {
height: 1em;
width: 1em;
background-color: black;
position: absolute;
left: 0em;
top: 0em;
}
Doesn't work:
<div id="block" style="left:50px;top:50px;"></div>
<br /><br /><br /><br /><br />Works:
<div id="otherBlock" style="left:50px;top:150px;"></div>
添加回答
举报