"gradient"
Bootstrap 3.0.0 Snippet by evarevirus

<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!------ Include the above in your HEAD tag ----------> <!DOCTYPE html><html lang='en' class=''> <head><script src='//production-assets.codepen.io/assets/editor/live/console_runner-079c09a0e3b9ff743e39ee2d5637b9216b3545af0de366d4b9aad9dc87e26bfd.js'></script><script src='//production-assets.codepen.io/assets/editor/live/events_runner-73716630c22bbc8cff4bd0f07b135f00a0bdc5d14629260c3ec49e5606f98fdd.js'></script><script src='//production-assets.codepen.io/assets/editor/live/css_live_reload_init-2c0dc5167d60a5af3ee189d570b1835129687ea2a61bee3513dee3a50c115a77.js'></script><meta charset='UTF-8'><meta name="robots" content="noindex"><link rel="shortcut icon" type="image/x-icon" href="//production-assets.codepen.io/assets/favicon/favicon-8ea04875e70c4b0bb41da869e81236e54394d63638a1ef12fa558a4a835f1164.ico" /><link rel="mask-icon" type="" href="//production-assets.codepen.io/assets/favicon/logo-pin-f2d2b6d2c61838f7e76325261b7195c27224080bc099486ddd6dccb469b8e8e6.svg" color="#111" /><link rel="canonical" href="https://codepen.io/13twelve/pen/xLoiH?q=gradient&limit=all&type=type-pens" /> <style class="cp-pen-styles">#gradient { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: #836997; }</style></head><body> <div id="gradient"></div> <!-- Updated Jan 2017 to use requestAnimationFrame --> <script src='//production-assets.codepen.io/assets/common/stopExecutionOnTimeout-b2a7b3fe212eaa732349046d8416e00a9dec26eb7fd347590fbced3ab38af52e.js'></script> <script > // target to give background to var $div = document.getElementById("gradient"); // rgb vals of the gradients var gradients = [ { start: [128,179,171], stop: [30,41,58] }, { start: [255,207,160], stop: [234,92,68] }, { start: [212,121,121], stop: [130,105,151] } ]; // how long for each transition var transition_time = 4; // internal type vars var currentIndex = 0; // where we are in the gradients array var nextIndex = 1; // what index of the gradients array is next var steps_count = 0; // steps counter var steps_total = Math.round(transition_time*60); // total amount of steps var rgb_steps = { start: [0,0,0], stop: [0,0,0] }; // how much to alter each rgb value var rgb_values = { start: [0,0,0], stop: [0,0,0] }; // the current rgb values, gets altered by rgb steps on each interval var prefixes = ["-webkit-","-moz-","-o-","-ms-",""]; // for looping through adding styles var div_style = $div.style; // short cut to actually adding styles var color1, color2; // sets next current and next index of gradients array function set_next(num) { return (num + 1 < gradients.length) ? num + 1 : 0; } // work out how big each rgb step is function calc_step_size(a,b) { return (a - b) / steps_total; } // populate the rgb_values and rgb_steps objects function calc_steps() { for (var key in rgb_values) {if (window.CP.shouldStopExecution(2)){break;} if (rgb_values.hasOwnProperty(key)) { for(var i = 0; i < 3; i++) {if (window.CP.shouldStopExecution(1)){break;} rgb_values[key][i] = gradients[currentIndex][key][i]; rgb_steps[key][i] = calc_step_size(gradients[nextIndex][key][i],rgb_values[key][i]); } window.CP.exitedLoop(1); } } window.CP.exitedLoop(2); } // update current rgb vals, update DOM element with new CSS background function updateGradient(){ // update the current rgb vals for (var key in rgb_values) {if (window.CP.shouldStopExecution(4)){break;} if (rgb_values.hasOwnProperty(key)) { for(var i = 0; i < 3; i++) {if (window.CP.shouldStopExecution(3)){break;} rgb_values[key][i] += rgb_steps[key][i]; } window.CP.exitedLoop(3); } } window.CP.exitedLoop(4); // generate CSS rgb values var t_color1 = "rgb("+(rgb_values.start[0] | 0)+","+(rgb_values.start[1] | 0)+","+(rgb_values.start[2] | 0)+")"; var t_color2 = "rgb("+(rgb_values.stop[0] | 0)+","+(rgb_values.stop[1] | 0)+","+(rgb_values.stop[2] | 0)+")"; // has anything changed on this interation if (t_color1 != color1 || t_color2 != color2) { // update cols strings color1 = t_color1; color2 = t_color2; // update DOM element style attribute div_style.backgroundImage = "-webkit-gradient(linear, left bottom, right top, from("+color1+"), to("+color2+"))"; for (var i = 0; i < 4; i++) {if (window.CP.shouldStopExecution(5)){break;} div_style.backgroundImage = prefixes[i]+"linear-gradient(45deg, "+color1+", "+color2+")"; } window.CP.exitedLoop(5); } // we did another step steps_count++; // did we do too many steps? if (steps_count > steps_total) { // reset steps count steps_count = 0; // set new indexs currentIndex = set_next(currentIndex); nextIndex = set_next(nextIndex); // calc steps calc_steps(); } if (div_style.backgroundImage.indexOf("gradient") != -1) { window.requestAnimationFrame(updateGradient) } } // initial step calc calc_steps(); // go go go! window.requestAnimationFrame(updateGradient); //# sourceURL=pen.js </script> </body></html>

Related: See More


Questions / Comments: