JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<div class="col-xs-3 col-sm-3 col-md-3" id="Wrapper">
<div class="row">
<img src="http://img42.com/p2OH4+" class="arrows" id="upArrow" height="128" width="128" />
<div id="itemWrapper">
<div id="items">
<div class="col-xs-12 col-sm-12 col-md-12 content">
<input type="image" src="http://img42.com/p2OH4+" class="thumb" />
</div>
<div class="col-xs-12 col-sm-12 col-md-12 content">
<input type="image" src="http://img42.com/p2OH4+" class="thumb" />
</div>
<div class="col-xs-12 col-sm-12 col-md-12 content">
<input type="image" src="http://img42.com/p2OH4+" class="thumb" />
</div>
</div>
</div>
<img src="http://img42.com/h1DoP+" class="arrows" id="downArrow" height="128" width="128" />
</div>
</div>
CSS
#Wrapper {
height: 100%;
border: 1px solid #f60;
text-align:center;
width:300px;
}
#itemWrapper {
height: 200px;
overflow: hidden;
position: relative;
border: 1px solid brown;
margin-top:-15px;
margin-bottom:-15px;
}
#items {
height: 99%;
overflow: auto;
top: 0;
bottom: 0;
left: 0;
right: -15px;
border: 1px solid blue;
}
.content {
display: table-cell;
vertical-align: middle;
text-align: center;
padding: 0;
}
.thumb {
width: 70%;
}
.arrows {
border: 3px solid lime;
display:inline-block;
background:red;
position:relative;
z-index:10;
}
JavaScript
var items = $('#items');
var upArrow = $('#upArrow');
var downArrow = $('#downArrow');
var scrollFactor = 100;
var scrollLeeway = 2;
items.on('scroll', onScroll);
function onScroll() {
if (items.scrollTop() === 0) {
upArrow.css('opacity', 0.1);
} else if (items[0].scrollHeight - items.scrollTop() <= items.height() + scrollLeeway) {
downArrow.css('opacity', 0.1);
} else {
upArrow.removeAttr('style');
downArrow.removeAttr('style');
}
}
function onUp(){ items.scrollTop(items.scrollTop() - scrollFactor); }
function onDown(){ items.scrollTop(items.scrollTop() + scrollFactor); }