1 回答

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
用引號(hào)“填充” styleString 并不能幫助它注冊(cè)為字符串。相反,它只是在字符串末尾添加引號(hào)。這不是按510px預(yù)期創(chuàng)建一個(gè)字符串,而是創(chuàng)建一個(gè)包含 content 的字符串"510px",這對(duì)于 CSS 來(lái)說(shuō)是無(wú)效輸入,因此 Javascript 只是忽略它而不執(zhí)行任何操作。
相反,你應(yīng)該寫(xiě)一些類(lèi)似的東西let styleString = newOffset + "px"。JavaScript 將為您完成字符串轉(zhuǎn)換。
例子:
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>
添加回答
舉報(bào)