JSFiddle - React, Tailwind, and code Playground
by DJS Baker
HTML
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<div id="content">
<div class="up-left">
<div class="brown box">
<h1>ONE</h1>
</div>
<div class="black box">
<h1>TWO</h1>
</div>
<div class="white box">
<h1>THREE</h1>
</div>
<div class="black box">
<h1>FOUR</h1>
</div>
<div class="white box">
<h1>FIVE</h1>
</div>
<div class="black box">
<h1>SIX</h1>
</div>
</div><!-- #up-left -->
<div class="down-right">
<div class="white box">
<h1>SIX</h1>
</div>
<div class="black box">
<h1>FIVE</h1>
</div>
<div class="white box">
<h1>FOUR</h1>
</div>
<div class="black box">
<h1>THREE</h1>
</div>
<div class="white box">
<h1>TWO</h1>
</div>
<div class="green box">
<h1>ONE</h1>
</div>
</div><!-- #down-right -->
</div><!-- .content -->
CSS
div#content {
width: 100%;
height: 100%;
position: absolute;
top:0;
right:0;
bottom:0;
left:0;
}
.box {
position: relative;
vertical-align:top;
width: 100%;
height: 500px;
margin: 0;
padding: 0;
}
.up-left {
position:absolute;
z-index:4px;
left: 0;
top: 0px;
width: 50%;
margin: 0;
padding: 0;
}
.down-right {
position:fixed;
bottom: -1400px;
z-index: 5px;
left: 50%;
width: 50%;
margin: 0;
padding: 0;
}
h1 {margin: 0;padding: 0;color:#fff}
.black {background: black;}
.white {background: grey;}
.green {background: green;}
.brown {background: brown;}
JavaScript
$(document).ready(function() {
var num_children = $('.up-left').children().length;
var child_height = $('.up-left').height() / num_children;
var half_way = num_children * child_height / 2;
$(window).scrollTop(half_way - 100);
function crisscross() {
var parent = $("#content");//.first();
var clone = $(parent).clone();
var leftSide = $(clone).find('.up-left');
var rightSide = $(clone).find('.down-right');
if (window.scrollY > half_way ) {
$(window).scrollTop(half_way - 475);
var firstLeft = $(leftSide).children().first();
var lastRight = $(rightSide).children().last();
lastRight.appendTo(leftSide);
firstLeft.prependTo(rightSide);
} else if (window.scrollY < half_way - child_height) {
var lastLeft = $(leftSide).children().last();
var firstRight = $(rightSide).children().first();
$(window).scrollTop(half_way - 50);
lastLeft.appendTo(rightSide);
firstRight.prependTo(leftSide);
}
$(leftSide).css('bottom', '-' + window.scrollY + 'px');
$(rightSide).css('bottom', '-' + window.scrollY + 'px');
$(parent).replaceWith(clone);
}
$(window).scroll(crisscross);
});