更改html元素背景图片js

时间:2018-07-15 13:38:32

标签: javascript html css background-image

我在这里搜索过google,但我找不到我使用此代码的正确答案。

html {
   background: url('../resources/imgs/bgs/mainbg.jpg') no-repeat center center fixed; 
   -webkit-background-size: cover;
   -moz-background-size: cover;
   -o-background-size: cover;
   background-size: cover;
}

我从互联网上获得了一个背景图像,该背景图像始终位于中心并完全适合浏览器,并且效果很好,但遇到了问题。我需要在单击按钮时更改背景图像,但我不知道如何定位html标签,它甚至可能吗?非常感谢:)

我的问题被标记为重复,但我的问题不仅是获取html elememnt的样式,而且仅使用纯javascript将其更改为与代码段相同的

4 个答案:

答案 0 :(得分:1)

您必须同时设置backgroundImagebackgroundSize属性。请尝试以下操作:

document.querySelector('#btnSetImage').addEventListener('click', function(){
  var html = document.querySelector('html');
  html.style.backgroundImage = "url('https://www.noodleman.co.uk/images/source/google_merchant_bulk_category_assign/google.jpg')";
  html.style.backgroundSize = 'cover';
});
<button type="button" id="btnSetImage">Set Background Image</button>

答案 1 :(得分:0)

只需使用:

document.getElementsByTagName('html')[0].style.backgroundImage = "url('img_tree.png')";

答案 2 :(得分:0)

使用jquery,您可以执行以下操作

$('html').on('click', function(){
    $('html').css({
      "background": "url('https://picsum.photos/1200/3300/?blur') no-repeat center center fixed",
      "background-size": "cover"
    });
});

答案 3 :(得分:0)

您可以直接使用documentElement访问html元素:

/*Just change the image source with javascript*/
document.querySelector('#changeImage').addEventListener('click', function() {
  document.documentElement.style.backgroundImage = 'url("https://www.fillmurray.com/400/400")';
});
/*Base settings in CSS*/

html {
  background: url('https://www.fillmurray.com/g/400/400') no-repeat center center fixed;
  /*This Would be a greyscale image*/
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}
<div style="color:#FFF;">Bill Murray!</div>
<!-- Just Some Content -->
<button id="changeImage">ChangeImage</button>