background

revision:


Content

background examples gradient examples the parallax effect


background examples

top

dynamic and static gradients

static
dynamic - @keyframes
static - to bottom
static - to left bottom corner
code:
            <div>
                <div class="div1">static</div>
                <div class="div2">dynamic - @keyframes</div>
                <div class="div3">static - to bottom</div>
                <div class="div4">static - to left bottom corner</div>
            </div>
            <style>
                .frame{margin-left: 10vw;}
                .div1{ width: 40vw; height: 10vw; border:0.5vw solid darkblue; background-image: repeating-linear-gradient(45deg, #606dbc, #606dbc 10px, #465298 10px, #465298 20px); color: aliceblue;}
                .div2{width: 40vw; height: 10vw; border:0.5vw solid darkblue; animation: coloring 10s infinite;color:aliceblue;}
                @keyframes coloring{
                    0%{background-image: repeating-linear-gradient(45deg, darkgrey, yellow, tomato);}
                    25%{background-image: repeating-linear-gradient(55deg, tomato, yellow, darkgrey);}
                    50%{background-image: repeating-linear-gradient(65deg, darkgrey, yellow, tomato);}
                    75%{background-image: repeating-linear-gradient(35deg, tomato, yellow, darkgrey)}
                    100%{background-image: repeating-linear-gradient(45deg, darkgrey, yellow, tomato);}
                } 
                .div3{ width: 40vw; height: 10vw; border:0.5vw solid darkblue; background-image: repeating-linear-gradient(to bottom, #606dbc, #606dbc 10px, #465298 10px, #465298 20px); color:aliceblue;}
                .div4{ width: 40vw; height: 10vw; border:0.5vw solid darkblue; background: repeating-linear-gradient(45deg,rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2) 10px, rgba(0, 0, 0, 0.3) 10px, rgba(0, 0, 0, 0.3) 
                    20px),url('../images/2.jpg');background-repeat: space;color:aliceblue;}
            </style>
        

a tale of satisfaction

A tale of satisfaction
stories
story-1
story-2
story-3
story-4
story-5
code:
            <div class="tale">A tale of satisfaction
                <div class="stories">stories
                    <div class="story-1"><img src="../images/1.jpg" alt=""/>story-1</div>
                    <div class="story-2"><img src="../images/2.jpg" alt=""/>story-2</div>
                    <div class="story-3"><img src="../images/3.jpg" alt=""/>story-3</div>
                    <div class="story-4"><img src="../images/4.jpg" alt=""/>story-4</div>
                    <div class="story-5"><img src="../images/5.jpg" alt=""/>story-5</div>
                </div>
            </div>
            <style>
                .tale{position: relative; margin: 0 auto; background-image: url(../images/8.jpg); background-size: cover; background-position: center; overflow: hidden; width: 40vw; height: 60vw; padding: 1vw; 
                    margin: 2vw auto; background-color: cyan; box-shadow: 2px 4px 16px rgba(0, 0, 0, 0.2); color: aliceblue;}
                .stories{display: grid; grid-template-columns: 3fr repeat(4, 1fr) 2fr; position: absolute; left: -20%; right: -20%; bottom: -10%; top: 20%; transform: rotate(-20deg) translateY(100px);}
                [class^=story-] {background-color: lightblue; background-size: cover; color: red;}
                [class^=story-] >img {width:50%; height: 100%; object-fit: cover;}
                .story-1 {grid-column: 1 / 1; grid-row: 1; clip-path: polygon(1% 2%, 98.5% 15.75%, 89% 100%, 0 100%); transform: translate3d(0, 0, 40px); }
                .story-1 >img {clip-path: polygon(1% 2%, 98.5% 15.75%, 89% 100%, 0 100%);  transform: scale(0.95); transform-origin: 70% 22%; }
                .story-2 { position: relative; grid-column: 1 / span 3; grid-row: 1; z-index: 1;  clip-path: polygon(59.51% 16.01%, 80.2% 18.43%, 86% 100%, 54% 100%);}          
                .story-2 >img { position: absolute; width: 140%; height: 140%; object-fit: fill; clip-path:  polygon(42.69% 11.52%, 57.23% 13.1%, 60.22% 55.28%, 39.96% 51.88%); transform: scale(0.95); 
                    transform-origin: 50% 20%;}
                .story-3 {position: relative; grid-column: 3 / span 4; grid-row: 1; clip-path: polygon(0.59% 18.42%, 20.97% 20.56%,77.79% 71.46%, 63.78% 100.53%, 5.52% 79.63%);z-index: 2;}
                .story-3 > img {position: absolute; top: 120px; left: -20px; width: 74%;   height: 70%;  clip-path: polygon(7.08% 0.1%, 35.11% 3.17%, 123.54% 87.61%, 96.26% 103.9%, 14.09% 88.78%);  
                    transform: scale(0.95);  transform-origin: 28% 20%;}
                .story-4 { grid-column: 4 / span 4; grid-row: 1; clip-path: polygon(1.5% 20.49%, 25.08% 19.07%, 86.59% 31.01%, 58.76% 61.02%); z-index: 1;}
                .story-4 >img {clip-path: polygon(2.09% 20.06%, 25.08% 18.64%, 86.59% 30.58%, 59.93% 60.88%); transform: scale(0.95);transform-origin: 14% 35%;}
                .story-5 {grid-column: 5 / span 2; grid-row: 1; clip-path: polygon(1% 18.82%, 33.03% 14.35%, 99.7% 16.36%,   69.34% 29.11%); transform: translate3d(0, 0, 200px);}           
                .story-5 >img {clip-path: polygon(2.83% 18.08%, 34.17% 13.61%, 99.7% 15.62%, 76.89% 28.96%);  transform: scale(0.95);transform-origin: 14% 35%;}
            </style>
        

the sky is the limit

code:
            <div class="a">
                <div id="circle"></div>
            </div>
            <style>
            .a{width:40vw; height: 100vh; background: radial-gradient(#0B853D 3px, transparent 5px, #000 7px, transparent 9px, #0B853D 11px, transparent 13px,  15px, transparent 17px, #000 19px, transparent 21px, 
                #0B853D 23px, transparent 25px, #fff 27px, transparent 29px, #000 31px, transparent 33px);background-color:#000; background-size: 32px 32px; overflow:hidden; margin:2vw;}
            #circle {width: 40vw; height: 100vh; top:0; left:0; right:0; bottom:0; margin:auto; position:relative; background: radial-gradient(#0B853D 3px, transparent 5px, #000 7px, transparent 9px, #0B853D 11px, 
                transparent 13px,  15px, transparent 17px, #000 19px, transparent 21px, #0B853D 23px, transparent 25px, #fff 27px, transparent 29px, #000 31px, transparent 33px);background-size: 3vw 3vw;} 
                .a { -webkit-animation: adjustHue loading 1s alternate infinite; animation: adjustHue loading 1s alternate infinite;}
                    
                @keyframes adjustHue {
                    0% { -webkit-filter: hue-rotate(30deg); }
                    50% { -webkit-filter: hue-rotate(60deg); }
                    100% { -webkit-filter: hue-rotate(90deg); }   
                }

                @-webkit-keyframes adjustHue {
                    0% { -webkit-filter: hue-rotate(30deg); }
                    50% { -webkit-filter: hue-rotate(60deg); }
                    100% { -webkit-filter: hue-rotate(90deg); }   
                }
                @-webkit-keyframes loading {
                    to { -webkit-transform: rotate(360deg); }
                }
                @-moz-keyframes loading {
                    to { -moz-transform: rotate(360deg); }
                }
                @-ms-keyframes loading {
                    to { -ms-transform: rotate(360deg); }
                }
                @keyframes loading {
                    to { transform: rotate(360deg); }
                } 
                #circle {-webkit-animation-name: blinker; -webkit-animation-duration: 3s; -webkit-animation-timing-function: linear; 
                    -webkit-animation-iteration-count: infinite;  -moz-animation-name: blinker; -moz-animation-duration: 3s; 
                    -moz-animation-timing-function: linear;-moz-animation-iteration-count: infinite; animation-name: blinker; 
                    animation-duration: 3s; animation-timing-function: linear; animation-iteration-count: infinite; color: red; } 

                @-moz-keyframes blinker {
                    0% { opacity: 1.0; }
                    50% { opacity: 0.3; }
                    100% { opacity: 1.0; } 
                }

                @-webkit-keyframes blinker { 
                    0% { opacity: 1.0; }
                    50% { opacity: 0.3; }
                    100% { opacity: 1.0; } 
                } 

                @keyframes blinker { 
                    0% { opacity: 1.0; } 
                    50% { opacity: 0.3; } 
                    100% { opacity: 1.0; } 
                }
                
            </style>
        


gradient examples

top

gradient color generator



Color generator

current colors for gradient background:

color:

code:
            <div id='one-one'>
                <h4 id="one-h4">Color generator</h4> 
                <b>current colors for gradient background:</b>
                <!-- Default color for gradient -->
                <input class="color1" type="color" value="#0000ff" />
                <input class="color2" type="color" value="#add8e6" />
                <p>color:<span id="result"></span></p>
            </div>
            <style>
                #one-one{width:30vw; height: 20vw; font: "Roboto";text-align: center; background: linear-gradient(to right, #0000ff, #add8e6);margin-left: 2vw;}
                #one-h4{margin-left: -10vw; font-size: 1vw; color: Black;}
                .color1, .color2{width: 3vw;}
                #result{margin: 0; font-size: 0.9vw; color: orange;}
            </style>
            <script>
                var css = document.querySelector("#result");
                var color1 = document.querySelector(".color1");
                var color2 = document.querySelector(".color2");
                var one = document.querySelector("#one-one");
                // Changing color for the gradient
                function changeGradient() {
                one.style.background = "linear-gradient(to right, " + color1.value + ", "  + color2.value + ")";
                css.textContent = one.style.background + ";";
                }
                color1.addEventListener("input", changeGradient);
                color2.addEventListener("input", changeGradient);
            </script>
        

canvas linear gradient with JavaScript

Your browser does not support the HTML5 canvas tag.
code:
            <canvas id="Canvas">Your browser does not support the HTML5 canvas tag.</canvas>
            <style>
                #Canvas{width: 45vw; height: 20vw; border:0.5vw solid burlywood; margin-left: 2vw;}
            </style>
            <script>
                var c = document.getElementById("Canvas");
                var ctx = c.getContext("2d");
                // Create gradient
                var grd = ctx.createLinearGradient(0,0,200,0);
                grd.addColorStop(0,"red");
                grd.addColorStop(1,"white");
                // Fill with gradient
                ctx.fillStyle = grd;
                ctx.fillRect(10,10,250,130);
            </script>
        

linear gradient in JavaScript

code:
            <div id="gradient1"></div>
            <style>
                #gradient1{display:block; max-width: 45vw; min-height: 20vw; margin-left: 2vw;}
            </style>
            <script>
                const gradient = document.getElementById("gradient1");
                gradient.style.background = "linear-gradient(red, blue, green)";
            </script>
        

4 pixel gradient in JavaScript

code:
            <canvas id="Canvas2" width="2" height="2"></canvas>
            <style>
                #Canvas2 {display: block; width: 30vw; height: 20vw; }
            </style>
            <script>
                var canvas = document.querySelector('#Canvas2');
                var ctx = canvas.getContext('2d');
            
                function Pixel( x, y ) {
                    this.x = x;
                    this.y = y;
                    this.hue = Math.floor( Math.random() * 360 );
                    var direction = Math.random() > 0.5 ? -1 : 1;
                    this.velocity = ( Math.random() * 30 + 20 ) * 0.01 * direction;
                }

                Pixel.prototype.update = function() {
                    this.hue += this.velocity;
                };

                Pixel.prototype.render = function( ctx ) {
                    var hue = Math.round( this.hue );
                    ctx.fillStyle = 'hsl(' + hue + ', 100%, 50% )';
                    ctx.fillRect( this.x, this.y, 1, 1 );
                }

                var pixels = [
                    new Pixel( 0, 0 ),
                    new Pixel( 1, 0 ),
                    new Pixel( 0, 1 ),
                    new Pixel( 1, 1 ),
                ];

                function animate() {
                    pixels.forEach( function( pixel ) {
                        pixel.update();
                        pixel.render( ctx );
                    });
                    requestAnimationFrame( animate );
                }
                animate();
            </script>
        

animated gradient

code:
            <div id="gradient2"></div>
            <style>
                #gradient2{ width: 30vw; height: 20vw; padding: 0vw;  margin: 0vw;}
            </style>
            <script>
            var colors = new Array(
                    [62,35,255],
                    [60,255,60],
                    [255,35,98],
                    [45,175,230],
                    [255,0,255],
                    [255,128,0]);

                var step = 0;
                    //color table indices for: 
                    // current color left
                    // next color left
                    // current color right
                    // next color right
                var colorIndices = [0,1,2,3];
                    //transition speed
                var gradientSpeed = 0.002;

                function updateGradient() {
                    
                    if ( $===undefined ) return;
                    
                    var c0_0 = colors[colorIndices[0]];
                    var c0_1 = colors[colorIndices[1]];
                    var c1_0 = colors[colorIndices[2]];
                    var c1_1 = colors[colorIndices[3]];

                    var istep = 1 - step;
                    var r1 = Math.round(istep * c0_0[0] + step * c0_1[0]);
                    var g1 = Math.round(istep * c0_0[1] + step * c0_1[1]);
                    var b1 = Math.round(istep * c0_0[2] + step * c0_1[2]);
                    var color1 = "rgb("+r1+","+g1+","+b1+")";

                    var r2 = Math.round(istep * c1_0[0] + step * c1_1[0]);
                    var g2 = Math.round(istep * c1_0[1] + step * c1_1[1]);
                    var b2 = Math.round(istep * c1_0[2] + step * c1_1[2]);
                    var color2 = "rgb("+r2+","+g2+","+b2+")";

                    $('#gradient2').css({
                    background: "-webkit-gradient(linear, left top, right top, from("+color1+"), 
                    to("+color2+"))"}).css({
                        background: "-moz-linear-gradient(left, "+color1+" 0%, "+color2+" 100%)"});
                    
                    step += gradientSpeed;
                    if ( step >= 1 )
                    {
                        step %= 1;
                        colorIndices[0] = colorIndices[1];
                        colorIndices[2] = colorIndices[3];
                        
                        //pick two new target color indices
                        //do not pick the same as the current one
                        colorIndices[1] = ( colorIndices[1] + Math.floor( 1 + Math.random() * 
                        (colors.length - 1))) % colors.length;
                        colorIndices[3] = ( colorIndices[3] + Math.floor( 1 + Math.random() * 
                        (colors.length - 1))) % colors.length;
                        
                    }
                }
                setInterval(updateGradient,10);
            </script>
        

canvas radial gradient with JavaScript

Your browser does not support the HTML5 canvas tag.
code:
            <canvas id="Canvas3">Your browser does not support the HTML5 canvas tag.
            <canvas>
                <style>
                        #Canvas3{width: 45vw; height: 20vw; border: 0.5vw inset burlywood; margin-left: 2vw;}
                </style>
                <script>
                    var c1 = document.getElementById("Canvas3");
                    var ctx1 = c1.getContext("2d");
        
                    // Create gradient
                    var grd1 = ctx1.createRadialGradient(75,50,5,90,60,100);
                    grd1.addColorStop(0,"red");
                    grd1.addColorStop(1,"white");
        
                    // Fill with gradient
                    ctx1.fillStyle = grd1;
                    ctx1.fillRect(10,10,250,120);
                </script>
        


the parallax effect

top

definition and usage

a parallax effect occurs when the various parts of a page move at various speeds. A website's surfing experience can be enhanced by parallax scrolling making it more engaging and dynamic.

parallax scrolling is a technique used to make background images appear as if they're moving slower than their surrounding foreground elements when scrolling through a web page.

Note: parallax scrolling does not always work on mobile devices/smart phones. Parallax scrolling can be turned off by setting "background-attachment" to "scrolling". You also can use media queries to turn off the effect on mobile devices.

how to create a parallax scrolling effect

Use a container element and add a background image to the container with a specific height. Then use the "background-attachment: fixed"" to create the actual parallax effect. The other background properties are used to center and scale the image perfectly.

examples

example 1:

Parallax Effect

Parallax is a displacement or difference in the apparent position of an object viewed along two different lines of sight and is measured by the angle or semi-angle of inclination between those two lines.

Floating Button

Image result for floating button A floating action button (FAB) performs the primary, or most common, action on a screen. It appears in front of all screen content, typically as a circular shape with an icon in its center.

Smooth Scroll

The smooth Scrolling feature for web pages allows the user to scroll smoothly while navigating across a webpage. This feature came into wide use because the normal scrolling is choppy and annoying for a lot of users who have to read long pages on the web.

code:
                    <div class="container">
                        <div class="parallax1" id="section1">
                            <a class="anchor" href="#section2">Section 1</a>
                        </div>
                        <div class="content">
                            <h3>Parallax Effect</h3>
                            <h4>Parallax is a displacement or difference in the apparent position
                            of an object viewed along two different lines of sight and is measured 
                            by the angle or semi-angle of inclination between those two lines.</h4>
                            <h3>Floating Button</h3>
                            <h4>
                            Image result for floating button
                            A floating action button (FAB) performs the primary, or most common, 
                            action on a screen. It appears in front of all screen content, typically
                            as a circular shape with an icon in its center.</h4>
                            <h3>Smooth Scroll</h1>
                            <h3>The smooth Scrolling feature for web pages allows the user to scroll
                            smoothly while navigating across a webpage. This feature came into wide use 
                            because the normal scrolling is choppy and annoying for a lot of users who
                            have to read long pages on the web.</h3>
                        </div>
                        <div class="parallax2" id="section2">
                            <a class="anchor" href="#section1">Section 2</a>
                        </div>
                    </div>
                    <style>
                        #section1 {display: flex; justify-content: center; padding-top: 5vw;}
                        #section2 {display: flex; justify-content: center; padding-top: 5vw;}
                        .parallax1 {background: url("../images/flowers.jpg"); height: 20vh; background-repeat: no-repeat; 
                        background-attachment: fixed; background-position: center; background-size: cover;}
                        .parallax2{background-image: url("img_pink_flowers.jpg"); position: relative; height: 20vw; 
                        background-repeat: no-repeat; background-attachment: fixed; background-position: center; 
                        background-size:
                        cover;}
                        .content{padding: 4vw 0 1vw; background: linear-gradient(109.6deg, #91EAE4 11.2%,#86A8E7 100.2%); 
                            cursor: default;}
                        h3{display: flex; justify-content: center; margin: 0 auto 3vw; border: .2vw solid white; border-radius: 2.5vw; 
                            max-width: 30vw; color: white; background: linear-gradient(109.6deg, rgb(255, 78, 80) 11.2%, 
                            rgb(249, 
                            212, 35) 100.2%); padding: 1vw;}
                        h4{ max-width: 50vw; margin: 0 auto 4vw; text-align: center; letter-spacing:.1vw; color: #4f3267;}
                        
                    </style>
                

example 2

Scroll Up and Down this page to see the parallax scrolling effect.

Scroll Up and Down this page to see the parallax scrolling effect. This div is just here to enable scrolling. Tip: Try to remove the background-attachment property to remove the scrolling effect.
code:
                    <div class="container-1">
                        <p>Scroll Up and Down this page to see the parallax scrolling effect.</p>
                        <div class="parallax-1"></div>
                        <div style="height:40vh; width: 30vw; background-color:red; font-size: 1.4vw;">
                            Scroll Up and Down this page to see the parallax scrolling effect.
                            This div is just here to enable scrolling.
                            Tip: Try to remove the background-attachment property to remove the 
                            scrolling effect.
                        </div>
                    </div>
                    <style>
                        .container-1{margin: 0; padding: 0;height: 50vh;}
                        .parallax-1{margin-top: 1vw;background-image: url("../images/car2.jpg");min-height: 50vh; 
                        background-attachment: fixed; background-position: center; background-repeat: 
                        no-repeat; background-size: cover;  }
                    </style>
                

example 3
Scroll Up and Down this page to see the parallax scrolling effect. This div is just here to enable scrolling. Tip: Try to remove the background-attachment property to remove the scrolling effect.
code:
                    <div class="container-2">
                        <div class="parallax-2"></div>
                        <div style="height:40vh; width: 30vw; background-color:red; font-size: 1.4vw;">
                            Scroll Up and Down this page to see the parallax scrolling effect.
                            This div is just here to enable scrolling.
                            Tip: Try to remove the background-attachment property to 
                            remove the scrolling effect.
                        </div>
                        <div class="parallax-2"></div>
                    </div>
                    <style>
                        .container-2{margin: 0; padding: 0; height: 100%;}
                        .parallax-2{margin-top: 1vw;background-image: url("car2.jpg");height: 100%; background-attachment: fixed; 
                        background-position: center; background-repeat: no-repeat; background-size: cover;  }
                    </style>