Keep video in view while exploring the rest of the page.
A Pen by Captain Anonymous on CodePen.
| <section class="video"> | |
| <h1>Scroll Down for lyrics</h1> | |
| <div class="vid-wrap"> | |
| <iframe src="https://www.youtube.com/embed/wp43OdtAAkM" frameborder="0" allowfullscreen></iframe> | |
| </div> | |
| </section> | |
| <section class="post"> | |
| <!--http://www.azlyrics.com/lyrics/katebush/runningupthathill.html--> | |
| <p>"If I only could, I'd be running up that hill. | |
| If I only could, I'd be running up that hill."</p> | |
| <p>It doesn't hurt me. | |
| Do you want to feel how it feels? | |
| Do you want to know that it doesn't hurt me? | |
| Do you want to hear about the deal that I'm making? | |
| You, it's you and me.</p> | |
| <p>And if I only could, | |
| I'd make a deal with God, | |
| And I'd get him to swap our places, | |
| Be running up that road, | |
| Be running up that hill, | |
| Be running up that building. | |
| If I only could, oh...</p> | |
| <p>You don't want to hurt me, | |
| But see how deep the bullet lies. | |
| Unaware I'm tearing you asunder. | |
| Ooh, there is thunder in our hearts.</p> | |
| <p>Is there so much hate for the ones we love? | |
| Tell me, we both matter, don't we? | |
| You, it's you and me. | |
| It's you and me won't be unhappy.</p> | |
| <p>And if I only could, | |
| I'd make a deal with God, | |
| And I'd get him to swap our places, | |
| Be running up that road, | |
| Be running up that hill, | |
| Be running up that building, | |
| Say, if I only could, oh...</p> | |
| <p>You, | |
| It's you and me, | |
| It's you and me won't be unhappy.</p> | |
| <p>"C'mon, baby, c'mon darling, | |
| Let me steal this moment from you now. | |
| C'mon, angel, c'mon, c'mon, darling, | |
| Let's exchange the experience, oh..."</p> | |
| <p>And if I only could, | |
| I'd make a deal with God, | |
| And I'd get him to swap our places, | |
| Be running up that road, | |
| Be running up that hill, | |
| With no problems.</p> | |
| <p>And if I only could, | |
| I'd make a deal with God, | |
| And I'd get him to swap our places, | |
| Be running up that road, | |
| Be running up that hill, | |
| With no problems.</p> | |
| <p>And if I only could, | |
| I'd make a deal with God, | |
| And I'd get him to swap our places, | |
| Be running up that road, | |
| Be running up that hill, | |
| With no problems.</p> | |
| <p>If I only could | |
| Be running up that hill | |
| With no problems...</p> | |
| <p>"If I only could, I'd be running up that hill. | |
| If I only could, I'd be running up that hill."</p> | |
| </section> |
| // c/o http://stackoverflow.com/a/4904902/604040 | |
| // i'm a dummy when it comes to js | |
| $(function () { | |
| var vid = $('.video'); | |
| var top = vid.offset().top - parseFloat(vid.css('margin-top').replace(/auto/, 0)); | |
| $(window).on('scroll', function(event) { | |
| // what the y position of the scroll is | |
| var y = $(this).scrollTop(); | |
| // whether that's below the form | |
| if (y >= top) { | |
| // if so, ad the fixed class | |
| if ( vid.is('.aside') ) { | |
| return; | |
| } | |
| vid.addClass('aside'); | |
| } else { | |
| // otherwise remove it | |
| vid.removeClass('aside'); | |
| } | |
| }); | |
| }); |
| <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> |
| @import url(https://fonts.googleapis.com/css?family=Tinos); | |
| html { | |
| box-sizing: border-box; | |
| font-family: "droid sans", sans-serif; | |
| } | |
| * { | |
| box-sizing: inherit; | |
| margin: 0; | |
| padding: 0; | |
| position: relative; | |
| } | |
| section + section { | |
| margin-top: 1em; | |
| } | |
| .video { | |
| position: absolute; | |
| top: 0; | |
| right: 0; | |
| width: 100%; | |
| transition: .5s; | |
| z-index: 5; | |
| } | |
| .aside { | |
| position: fixed; | |
| width: 40%; | |
| } | |
| h1 { | |
| padding: 1em; | |
| transition: opacity .5s; | |
| } | |
| .vid-wrap { | |
| height: 480px; | |
| background-color: hsl(0,0%,10%); | |
| transition: .5s; | |
| } | |
| .vid-wrap > iframe { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| margin: auto; | |
| width: 100%; | |
| height: 100%; | |
| max-width: 854px; | |
| } | |
| .aside .vid-wrap { | |
| height: 240px; | |
| } | |
| .aside h1 { | |
| opacity: 0; | |
| } | |
| .post { | |
| top: calc(480px + 6em); | |
| padding: 1em; | |
| width: 60%; | |
| font-family: 'Tinos', serif; | |
| font-size: 1.2em; | |
| } | |
| .post > p + p { | |
| margin-top: 1em; | |
| } | |
| .post > p { | |
| line-height: 1.5; | |
| transition: background-color .5s; | |
| padding: 1em; | |
| } | |
| .post > p:hover { | |
| background-color: hsla(18,100%,70%,.5) | |
| } |
Keep video in view while exploring the rest of the page.
A Pen by Captain Anonymous on CodePen.