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.