JSFiddle - React, Tailwind, and code Playground

by Jay Zelenkov

HTML

<div id="report">
    <div id="headerFixed"></div>
    <div id="headerVar"></div>
    <div id="fixed" class="linked-vertically">
        <div id="fixedInter">
            <table id="fixData">
                <tr>
                    <td>blah3</td>
                </tr>
                <tr>
                    <td>blah4</td>
                </tr>
                <tr>
                    <td>bla6h</td>
                </tr>
                <tr>
                    <td>blah7</td>
                </tr>
                <tr>
                    <td>blah3</td>
                </tr>
                <tr>
                    <td>blah4</td>
                </tr>
                <tr>
                    <td>bla6h</td>
                </tr>
                <tr>
                    <td>blah7</td>
                </tr>
                <tr>
                    <td>blah3</td>
                </tr>
                <tr>
                    <td>blah4</td>
                </tr>
                <tr>
                    <td>bla6h</td>
                </tr>
                <tr>
                    <td>blah7</td>
                </tr>
            </table>
        </div>
    </div>
    <div id="variable" class="linked-vertically">
        <div id="varInter">
            <table id="fixData">
                <tr>
                    <td>blah3</td>
                </tr>
                <tr>
                    <td>blah4</td>
                </tr>
                <tr>
                    <td>bla6h</td>
                </tr>
                <tr>
                    <td>blah7</td>
                </tr>
                <tr>
                    <td>blah3</td>
                </tr>
                <tr>
                    <td>blah4</td>
                </tr>
                <tr>
                    <td>bla6h</td>
                </tr>
                <tr>
                    <td>blah7</td>
                </tr>
                <tr>
                    <td>blah3</td>
                </tr>
         ...

CSS

html, body {
    padding: 0;
    margin: 0;
    height: 100%;
}
#report {
    width: 400px;
    background-color: #eee;
    height: 100%;
    max-height: 290px;
    height: -webkit-calc(100% - 40px);
    height: -moz-calc(100% - 40px);
    height: calc(100% - 40px);
}
#headerFixed {
    float: left;
    width: 200px;
    height: 20px;
    background-color: #8ee;
}
#headerVar {
    height: 20px;
    margin-left: 200px;
    background-color: #8e8;
}
#fixed {
    float: left;
    width: 200px;
    height: 100%;
    max-height: 290px;
    background-color: #aec;
    overflow-x: hidden;
    overflow-y: hidden;
}
#fixedInter {
    height: 100%;
}
#fixData {
    width: 50px;
    background-color: #eee;
}
#fixData td {
}
#variable {
    position: relative;
    margin-left: 200px;
    height: 100%;
    max-height: 290px;
    background-color: #cea;
    overflow-x: hidden;
    overflow-y: scroll;
}
#varInter {
    height: 100%;
}
#varData {
    background-color: #eee;
}
#footer {
    background-color: yellow;
    height: 20px;
}

JavaScript

$(document).ready(function () {
    $('.linked-vertically').scroll(function () {
        $('.linked-vertically').scrollTop($(this).scrollTop());
    });
    $('.linked-horizontally').scroll(function () {
        $('.linked-horizontally').scrollLeft($(this).scrollLeft());
    });
});