我需要使用PURE javascript(无JQuery或其他库)设置背景图片。
我使用以下所示的javascript设置背景图片。 Firefox控制台,检查器网格和CSS引擎都显示背景图像是应有的。我已经成功设置了背景色,表明该元素未被隐藏,并且我没有选择错误的元素。如下面的代码所示,我尝试使用不透明度和背景色。这是徒劳的。将鼠标悬停在图像URL上后,Firefox会显示该图像实际上已正确加载。
这是我的JavaScript:
var shadow = document.getElementById("shadow");
shadow.style.backgroundColor = "transparant";
shadow.style.opacity = "1";
shadow.style.backgroundImage = image;
在程序启动时将CSS应用于元素
div#shadow
{
opacity: 0;
position: absolute;
top: 315px;
left: 721px;
width: 48px;
height: 48px;
}
该元素只是嵌套在<body>
<html>
<body>
<div id="shadow"></div>
</body>
</html>
答案 0 :(得分:1)
透明的拼写错误不仅包含图片的网址,而且还包含图片的网址
var shadow = document.getElementById("shadow");
shadow.style.backgroundColor = "transparent";
shadow.style.opacity = "1";
shadow.style.backgroundImage = "url('image+address')";
div#shadow
{
opacity: 0;
position: absolute;
top: 315px;
left: 721px;
width: 48px;
height: 48px;
}
<html>
<body>
<div id="shadow"></div>
</body>
</html>
答案 1 :(得分:0)
对于style.backgroundImage
属性,您需要一个图像路径,例如"url('image.png')"
。否则,将图像URL分配给变量image
。
答案 2 :(得分:0)
您在这里做的太多了。不需要opacity
或transparent
或backgroundColor
。只需将background
设置为图像即可。
但是,在CSS中,每当需要为属性提供路径时,都需要使用url()
函数来传递该路径,而您似乎并没有这么做。
// Best practice: don't set individual properties on the
// style of an element. Add/remove pre-made classes.
document.querySelector("div").classList.add("background");
body { background-color:#e0e0e0; }
div { width:150px; height:150px; border:1px solid black; padding:10px;}
.background {
/* Just set the background property using url(path). That's it. */
background:url("http://www.thetherapystore.com.au/wp-content/uploads/2015/06/SSMILE.jpg");
background-size:contain; /* Only used here to scale the image to fit */
}
<div>This content is in the foreground.</div>
答案 3 :(得分:0)
您可以提供“图片”变量吗?我用一个网址替换了您的var,并且效果很好。
shadow.style.backgroundImage = "url('http://placehold.it/300x300')";
此外,尝试通过CSS添加一些背景属性,例如background-size。