簡體   English   中英

javascript css3每2秒更改一次背景顏色

[英]javascript css3 change background color every 2 seconds

如何每2秒自動更改HTML背景顏色? HTML5和CSS3淡入或淡出?

我試圖將過渡與計時器和CSS目標一起使用,但未成功

input[type=checkbox] {
   position: absolute;
   top: -9999px;
   left: -9999px;
}

label {
     display: block;
     background: #08C;
     padding: 5px;
     border: 1px solid rgba(0,0,0,.1);
     border-radius: 2px;
     color: white;
     font-weight: bold;
}

input[type=checkbox]:checked ~ .to-be-changed {
    color: red;
}

一些更改如果您事先知道顏色和顏色數量,則可以在現代瀏覽器中進行此更改

 .animate-me { -webkit-animation: bgcolorchange 4s infinite; /* Chrome, Safari, Opera */ animation: 4s infinite bgcolorchange; } @keyframes bgcolorchange { 0% { background-color: red; } 25% { background-color: green; } 50% { background-color: yellow; } 75% { background-color: yellow; } 100% { background-color: red; } } /* Chrome, Safari, Opera */ @-webkit-keyframes bgcolorchange { 0% {background: red;} 25% {background: yellow;} 75% {background: green;} 100% {background: blue;} } 
 <div class="animate-me">Trippy! Give me a headache!</div> 
http://jsfiddle.net/nnw7xza2/1/

單擊此處演示!

用-css3 -html5 -javascript timer進行計算

 var arrColor = ["#45c1bf", "#f0593e", "#aeacd4", "#bdd630", "#4479bd", "#f5b11e"]; var footer = document.getElementById("footer"); var header = document.getElementById("header"); //helper function - get dark or lighter color function LightenDarkenColor(col, amt) { var usePound = false; if (col[0] == "#") { col = col.slice(1); usePound = true; } var num = parseInt(col, 16); var r = (num >> 16) + amt; if (r > 255) r = 255; else if (r < 0) r = 0; var b = ((num >> 8) & 0x00FF) + amt; if (b > 255) b = 255; else if (b < 0) b = 0; var g = (num & 0x0000FF) + amt; if (g > 255) g = 255; else if (g < 0) g = 0; return (usePound ? "#" : "") + (g | (b << 8) | (r << 16)).toString(16); } //random new color function GetNewColor() { var index = Math.floor((Math.random() * 5) + 1); return arrColor[index]; } // set new color function SetNewColor(color) { document.body.style.background = color; var NewColor = LightenDarkenColor(color, -20); footer.style.backgroundColor = NewColor; header.style.backgroundColor = NewColor; //footer.style.opacity = 1.2; } // on document load function start (function() { var colorSelected = GetNewColor(); SetNewColor(colorSelected); })(); //change color timer window.setInterval(function() { var colorSelected = GetNewColor(); SetNewColor(colorSelected); }, 2000); 
 * { margin: 0; padding: 0; } body { background: #bdd630; transition: background-color 0.5s ease; color: #fff; } #header { background: #000; height: 40px; text-align: center; } #content { /* Now, to activate scrollbars and compensate #footer height: */ padding-bottom: 40px; } #footer { background: #000; position: fixed; bottom: 0px; width: 100%; /* cause of fixed pos */ height: 40px; text-align: center; } 
 <div id="header">header</div> <div id="content"> <p>content here</p> </div> <div id="footer">footer</div> 

請享用

如果您正在尋找一種易於理解的方法,請查看Basecacti 當然,到目前為止,Basecacti還不包括將背景嵌入到您自己的html頁面中,因此只需查看其背后的源代碼即可。 如果需要,請參見以下示例:

var clr1 = renderColors("clr1");
    var clr2 = renderColors("clr2");
    var clr3 = renderColors("clr3");
    var speed = renderColors("speed");

    var deb = document.body;
    var circle = 0;
    deb.style.backgroundColor = clr1;

    setInterval(function(){
        if (circle == 0) {
            deb.style.backgroundColor = clr2;
            circle = 1;
        }
        else if (circle == 1) {
            deb.style.backgroundColor = clr3;
            circle = 2;
        }
        else {
            deb.style.backgroundColor = clr1;
            circle = 0;
        }
    }, speed);

為了使您clr1 ,請定義3種不同的顏色,如clr1clr2clr3 然后將速度變量設置為2000 2秒鍾,它應該可以工作。 (在上面的代碼中定義這些值的renderColors函數是Basecacti用來從用戶從另一個網頁獲取顏色的功能。)而且,Basecacti目前是開放源代碼,因此您可能想快點轉到他們的網站並盡快獲取此代碼。 如果僅希望背景在2秒后更改一次,請將函數從setInterval更改為setTimeout ,但不要進行任何其他更改。 如果Basecacti網站關閉或停止工作,或者代碼中有錯誤,請對此帖子發表評論。

暫無
暫無

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

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