I have a div box with all the page content within it called .body-Container
and there is a div box that is placed on top of the .body-Container
which is acting like a cover called .coverImg
.
What I am trying to achieve is having the .body-Container
positioned fixed until the .coverImg
scrolls out of view, then changes position from fixed to relative. To allow the user to continue on viewing the content.
Then reverse, when scrolled to the top of the web page .body-Container
becomes fixed and the .coverImg
comes back into view.
I have given the .coverImg
a magin-bottom:100vh
which allows the div to scroll out of view.
I am having difficulty detecting when the bottom of the div hits the top of the window. To change the positioning.
Here is a jsfiddle to give a better understanding of what I am trying to do.
HTML:
<div class="coverImg" style="background-image:url(https://cdn.creativelive.com/fit/https%3A%2F%2Fcdn.creativelive.com%2Fagc%2Fcourses%2F5158-1.jpg/640);">
</div>
<div class="body-Container">
<div class="content">
<div class='section'>
</div>
<div class='section'>
</div>
<div class='section'>
</div>
</div>
</div>
CSS
.body-Container {
position: relative;
position:fixed;
width: 100%;
height: 99vh;
margin: 0;
padding: 0;
border: 3px solid red;
}
.coverImg {
width: 90%;
height: 150vh;
margin: 0 auto;
border: 3px solid black;
position: absolute;
top: 0px;
bottom: 0px;
left: 0px;
right: 0;
margin-bottom: 100vh;
z-index: 2;
}
.content {
width: 90%;
height: 2500px;
margin: 0 auto;
position: absolute;
top: 20px;
bottom: 0px;
left: 0px;
right: 0;
z-index: 1;
background-color: skyblue;
}