簡體   English   中英

將淡入效果應用到Javascript backgroundImage更改

[英]Apply fade in to Javascript backgroundImage change

這是我的代碼,改變了背景

document.body.style.backgroundImage = "url(img/space1.jpg)";    

如何在JS中為此添加不透明度轉換?

您可以使用css進行此操作。 更簡單。

 document.getElementsByTagName('img')[0].src ="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcRTDYDnkDr8JO6eh9_uXwwZpbHAkLbj02Tsdj3Iy2odb5vPEsXhBA"; 
 .item-fade{ vertical-align: top; opacity: 1; transition: opacity 1s; } .item-fade:hover{ opacity: 0.2; } 
 <span> <img class="hover item-fade" src="" /> </span> 

編輯:我已經更新了此主要評論,所以您有完整的答案:)

您不能輕易地對身體背景進行此操作。 但是,您可以通過添加div來實現此效果,例如,如下所示(z-index -1會執行“技巧”):

<body>
  <div id="js_background_filler" class="background_filler"></div>
... rest of your body ...

然后以您的樣式/ css:

.background_filler {
  background-image: url(img/space1);
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  bottom: 0;
  opacity: 0.2;
  will-change: opacity;
}

.background_filler--animate {
  -webkit-animation: fadein 2s ease-in alternate infinite;
  -moz-animation: fadein 2s ease-in alternate infinite;
  animation: fadein 2s ease-in alternate infinite;
}

@-webkit-keyframes fadein {
  from { opacity: 0; }
  to { opacity: 1; }
}

@-moz-keyframes fadein {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fadein {
  from { opacity: 0; }
  to { opacity: 1; }
}

您可能想在某個背景上觸發動畫的JavaScript函數,將其擴展為:

var $element = document.getElementById('js_background_filler');
$element.classList.add("background_filler--animate");

您可以擺弄animation: fadein 2s ease-in alternate infinite; (例如,將其設置為20秒(秒)以使其變慢)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM