2016-11-18 144 views
1

編輯:無法使用JavaScript設置CSS背景圖片屬性

無論出於何種原因,這不適用於JavaScript。它不會讓你多次設置背景圖像。爲了解決這個問題,我將backgroundPosition屬性設置爲calc(50% + translation_x) calc(50% + translation_y),而不是在圖像中設置轉換。這似乎工作(現在)。


我無法使用JavaScript動態設置元素的「background-image」屬性。過去我沒有這樣做,但我目前的腳本根本不起作用。控制檯中沒有錯誤消息,所以我沒有絲毫的想法發生了什麼。

我已經創建了一款遊戲的矢量圖形,我試圖通過組(<g transform = "translate(x, y)">)在屏幕上移動它們。我的腳本獲取元素的當前背景background.style.backgroundImage,並用轉換後的版本替換包含該組的行。

現在,如果我跑

background.style.backgroundImage = "url(\"" + transformed_background + "\")"; 
console.log(background.style.backgroundImage);

舊版本的背景圖像(無需轉換)是(不出所料)顯示在輸出和圖像不更新。例如,輸出可能是

… <svg xmlns=\'http://www.w3.org/2000/svg\' width=\'5000\' height=\'5000\'><g> … 

console.log(transformed_background); 

輸出是正確的,是值得的

… <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"5000\" height=\"5000\"><g transform="translate(1327.0717423133253, 1819.0229885057504)"> … 

元素的背景不會改變的效果儘管我盡了最大的努力。爲了解決這個問題,我嘗試了一切可以想象的方法。我相信它可能是由它所處的環路引起的(間隔約爲50毫秒),但增加間隔沒有效果。這個系統在腳本的其他地方工作(最初設置背景的地方),並且這個部分使用相同的方法。

腳本可用here,這個問題是線175

的任何信息,將不勝感激。

謝謝!

+0

Oh noes,I died – zer00ne

+0

@ zer00ne不幸的是,這場比賽遠沒有結束,所以沒有辦法*不*死。 – skyrocket

回答

1

我唯一看到的是線177, 你來自哪裏,線175

使用var你寫有

document.getElementById("background").backgroundImage = "url(\"" + build_background + ")"; 

但是,如果我沒看錯你改變與JS背景像那樣。

​​

所以你忘了風格。

btw爲什麼你在html窗口中寫js而不是在js窗口中?

+1

感謝您的迴應!不幸的是,添加「。風格「並不能解決問題(我確信我在嘗試修復它之前已經有了這個功能)。所有內容都在一個窗口中,因爲該網站只有一個頁面(我不需要重新使用JavaScript函數或CSS規則)一次看到所有內容都很容易,我只是將源碼從我的電腦複製到網站上,以便在此問題中分享。 – skyrocket