Further practice on automatic background changes with JavaScript and CSS
P粉875565683
P粉875565683 2023-08-15 16:52:20
0
2
483

In my previous question, with the help of (Jan) I solved the problem of automatic background change.

My previous question: Automatic background changes using JavaScript and CSS

But when the background changes, the jump in color is visible, and I want the color change to be seamless and slow.


var i = 0; function changeBackgroundColor() { var background = document.getElementById("background"); if (i % 2 === 0) { background.classList.remove("background-body"); } else { background.classList.add("background-body"); } i = i 1; } setInterval(changeBackgroundColor, 3 * 1000);
html,body{ width: 100%; overflow-x: hidden !important; height: 100%; overflow-y: hidden !important; } #background{ width: 100%; height: 100%; background: #39c787; background-image: -webkit-gradient(linear, 15% 0%, 75% 84%, from(#ca83ddc4), to(#7874e3f3), color-stop(70%, #dfa450ab)); transition: all 5s ease; -webkit-transition: all 5s ease; -moz-transition: all 5s ease; -o-transition: all 5s ease; -ms-transition: all 5s ease; } .background-body{ background: #e0922d !important; background-image: -webkit-gradient(linear, 15% 0%, 75% 84%, from(#9283ddc4), to(#22ff12d1), color-stop(70%, #c550dfab)) !important; transition: all 5s ease; -webkit-transition: all 5s ease; -moz-transition: all 5s ease; -o-transition: all 5s ease; -ms-transition: all 5s ease; }
 


P粉875565683
P粉875565683

reply all (2)
P粉081360775

To make the background color change smoothly, you need to add the transition attribute to the background-color attribute. The following code can achieve this effect:

#background{ width: 100%; height: 100%; background: #39c787; background-image: -webkit-gradient(linear, 15% 0%, 75% 84%, from(#ca83ddc4), to(#7874e3f3), color-stop(70%, #dfa450ab)); transition: background-color 5s ease; -webkit-transition: background-color 5s ease; -moz-transition: background-color 5s ease; -o-transition: background-color 5s ease; -ms-transition: background-color 5s ease; } .background-body{ background: #e0922d !important; background-image: -webkit-gradient(linear, 15% 0%, 75% 84%, from(#9283ddc4), to(#22ff12d1), color-stop(70%, #c550dfab)) !important; transition: background-color 5s ease; -webkit-transition: background-color 5s ease; -moz-transition: background-color 5s ease; -o-transition: background-color 5s ease; -ms-transition: background-color 5s ease; }
    P粉729198207

    Use an absolutely positioned pseudo-element with a different background, and then make an opacity change transition on top of it.

    function changeBackgroundColor() { document.body.classList.toggle("alt-background") setTimeout(changeBackgroundColor, 4000) } changeBackgroundColor()
    html, body { width: 100%; height: 100%; } body { position: relative; margin: 0; background-image: linear-gradient(135deg, rgba(131,58,180,1) 0%, rgba(253,29,29,1) 50%, rgba(252,176,69,1) 100%); } body::before { position: absolute; top: 0; left: 0; width: 100%; height: 100%; content: ''; background-image: linear-gradient(135deg, rgba(2,0,36,1) 0%, rgba(9,9,121,1) 35%, rgba(0,212,255,1) 100%); opacity: 0; transition: opacity 2s ease-in-out; } body.alt-background::before { opacity: 1; }
      Latest Downloads
      More>
      Web Effects
      Website Source Code
      Website Materials
      Front End Template
      About us Disclaimer Sitemap
      php.cn:Public welfare online PHP training,Help PHP learners grow quickly!