简体   繁体   中英

Creating a section with video as background HTML5

I'm trying to imitate the front page of lumosity.com but I am unable to set a video background to the section. Here's what I've done so far:

HTML

<section id="banner">
   <video id="videobcg" preload="auto" autoplay="true" loop="loop" muted="muted" volume="0">
     <source src="https://static.lumosity.com/resources/home_page_templates/574/neuralnetwork.mp4" type="video/mp4">
     <source src="movie.webm" type="video/webm">
          Sorry, your browser does not support HTML5 video.
    </video>
    <p>This is text that is in front of video, we do not want the z-index of video to be greater than content. Hence background!
    </p>
 </section>

CSS

#videobcg { 
     position: absolute;
     top: 0px;
     left: 0px;
     padding: 5em 2em 4em 2em;
     z-index: -1000;
     overflow: hidden;
}

As you can see my code doesn't work, the video remains hidden somewhere on the webpage. Any ideas?

I used this as an example and modified your css.

Example 1: Video as background of containing div

In this example the video only plays as the background of the containing div, similar to lumosity.com:

JSFIDDLE 1

#banner {
    position: relative;
    height:300px;
    width:100%;
    overflow: hidden;
}
#videobcg {
    position: absolute;
    top: 0;
    left: 0;
    min-width: 100%;
    min-height: 100%;
    height:auto;
    width:auto;
    z-index: -100;
}

Example 2: Video as background of full page

JSFIDDLE 2

#videobcg {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: -100;
    transform: translateX(-50%) translateY(-50%);
    background-size: cover;
    transition: 1s opacity;
}

I use BIGVIDEO.JS to do the Video Background :

HTML

<div class="background-image-hide parallax-background video-wrap" data-video-wrap="images/slides/video.mp4" data-img-wrap="images/slides/video.jpg">
</div>

JS

var bigVedio = function() {
                // initialize BigVideo
                var BV = new $.BigVideo({
                        container: $('.video-wrap'),
                        forceAutoplay: isTouch
                    }),
                    V = $('.video-wrap').attr('data-video-wrap'),
                    img = $('.video-wrap').attr('data-img-wrap');
                if (typeof V != typeof undefined) {
                    if (!isTouch) {
                        BV.init();
                        BV.show(V, {
                            ambient: true,
                            doLoop: true
                        });
                    } else {
                        BV.init();
                        BV.show(img);
                    }
                }
            };

css

.background-image-hide {
  position: absolute;
  top: -30px;
  height: 150%;
  width: 100%;
  background-size: cover !important;
  z-index: 0;
  background-position: 50% 50%;
}

Hope this will help you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM