Ваша логика говорит это ... Если pos равно нулю, вычтите одно из pos.Иначе, если pos равно 600, добавьте один.Кроме, он не будет корректировать его.
Должно быть что-то вроде
var dir = 1;
var pos = 0;
function start () {
if (pos>600) dir=-1
else if (pos<0) dir=1
pos += dir
barMove.style.top = pos + 'px';
}
Отредактировано с его работой ....
var interval;
function load() {
var barMove = document.getElementById("small-bar");
var pos = 600;
interval = setInterval(start, 5);
var dir = 1;
var pos = 0;
function start() {
if (pos > 600) dir = -1
else if (pos < 0) dir = 1
pos += dir
barMove.style.top = pos + 'px';
}
}
function stop() {
window.clearInterval(interval);
}
body {
margin: 0;
padding: 0;
text-align: center;
}
#container {
position: relative;
background-color: brown;
height: 800px;
width: 800px;
margin: 0 auto;
margin-top: 75px;
}
#big-bar {
position: relative;
height: 600px;
width: 200px;
background: blue;
left: 300px;
top: 100px;
overflow: hidden;
border-radius: 20px 20px 20px 20px;
}
#medium-bar {
border-radius: 20px 20px 20px 20px;
z-index: 2;
position: absolute;
height: 100px;
width: 200px;
background: green;
top: 200px;
}
#small-bar {
border-radius: 20px 20px 20px 20px;
z-index: 3;
position: absolute;
height: 50px;
width: 200px;
background: black;
top: 600px;
}
#btn-go {
position: absolute;
top: 20px;
right: 600px;
padding: 5px 20px;
border-radius: 10px;
background: gold;
font-family: sans-serif;
font-size: 1.8em;
color: #424242;
}
#btn-stop {
position: absolute;
top: 20px;
right: 75px;
padding: 5px 20px;
border-radius: 10px;
background: red;
font-family: sans-serif;
font-size: 1.8em;
color: #424242;
}
<div id="container">
<div id="big-bar">
<div id="medium-bar"></div>
<div id="small-bar"></div>
</div>
<input id="btn-go" type="button" value="Go !" onclick="load()">
<input id="btn-stop" type="button" value="Stop !" onclick="stop()">
</div>