2017-10-12 83 views
-1

我需要改變img元素的背景圖像,所以可以顯示一個子畫面(一卡精靈,在這種情況下)JavaScript的背景圖像不改變

我有這樣的代碼:

document.getElementById("cardImg").style.background = "url(cards.jpg)" + (-349/13 * card) + "px " + (-36 * Math.floor(Math.random() * 4)); 

card變量是一個從0到12的數字
這是一個更大功能的一部分,但是當我執行該功能時,圖像有時不會改變,有時它也會改變。

而且我thired做事像改變url(cards.jpg)url(cards.jpg?v=Math.random())但它不會改變任何東西

感謝您的幫助

+1

看看你建立字符串....'的console.log( 「URL(cards.jpg)」 +(-349/13 *卡)+ 「px」+(-36 * Math.floor(Math.random()* 4)))' – epascarello

+0

您已經將「url(cards.jpg')」添加爲字符串,並且您還說卡片是變量名稱,所以如果將它作爲字符串添加,你無法獲得卡的價值。 – pravid

+0

嘗試類似這樣的, document.getElementById(「cardImg」)。style.background =「url(」+ cards +「.jpg)」+(-349/13 * card)+「px」+(-36 * Math.floor(Math.random()* 4)) – pravid

回答

0

let card = 1; 
 

 
console.log("url(cards.jpg)" + (-349/13 * card) + "px " + (-36 * Math.floor(Math.random() * 4)));

這裏的錯誤是非常明顯的。

  1. 你應該有一個空間...jpg) -26...url(cards.jpg)-26.846153846153847px -36
  2. 您最後一個號碼沒有單位(例如,pxem等)。
0

看到這個小提琴作爲參考。

Examplehttps://jsfiddle.net/trupti11/0yofLkfu/

JS

var cards = "https://i.imgur.com/kABxZg1"; 
var posX = 200; 
var posY = 500; 
document.getElementById("cardImg").style.background = "url(" + cards + ".jpg) "+posX+"px "+ posY+"px";