无法使用JavaScript

时间:2016-11-18 23:25:41

标签: javascript html css svg

编辑:

无论出于何种原因,这都不适用于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行。

非常感谢任何信息。

谢谢!

1 个答案:

答案 0 :(得分:1)

我唯一看到的是第177行, 你在第175行使用var的地方。

你在那里写的

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

但如果我没有错,你可以用这样的js改变背景。

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

所以你忘记了风格。

顺便说一下你为什么要在html窗口中编写js而不是在js的窗口中编写?