My suggestion would be to create a comprehensive HTML container and then dynamically move child content based on user events. For instance, you can trigger the same event by onClick of 'fixed-type' links or onScroll of the window.
Here is an example:
<div id="container">
<div id="content1"></div>
<div id="content2"></div>
<div id="content3"></div>
<div id="content4"></div>
<div id="links">
<a href="0" class="contentLink">link 1</a> |
<a href="1" class="contentLink">link 2</a> |
<a href="2" class="contentLink">link 3</a> |
<a href="3" class="contentLink">link 4</a>
</div>
</div>
CSS:
#container, #content1, #content2, #content3, #content4 {
position: absolute;
width: 100%;
height: 100%;
top: 0; left: 0;
overflow: hidden;
z-index: 1;
}
#content1 { top: 0%; background: green; }
#content2 { top: 100%; background: red; }
#content3 { top: 200%; background: orange; }
#content4 { top: 300%; background: purple; }
#links {
position: absolute;
bottom: 10px; left: 10px;
z-index: 2;
}
JS:
$(function() {
var currentPos = 0,
scrollDirection;
$(".contentLink").click(function(evt) {
evt.preventDefault();
var newPos = $(this).attr("href");
if (newPos > currentPos) {
$("#content1, #content2, #content3, #content4").animate({
top: "-=" + ((newPos-currentPos) * 100) + "%"
}, 1000);
} else if (newPos < currentPos) {
$("#content1, #content2, #content3, #content4").animate({
top: "+=" + ((currentPos-newPos) * 100) + "%"
}, 1000);
}
currentPos = newPos;
});
});
I hope this solution proves helpful!