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);
 
});