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