2017-10-12 93 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";