Here the html
<ul>
<li id="li1">frame 1 - <span id="goto2" class="goto">go to frame 2</span></li>
<li id="li2">frame 2 - <span id="goto3" class="goto">go to frame 3</span></li>
<li id="li3">frame 3 - <span id="goto4" class="goto">go to frame 4</span></li>
<li id="li4">frame 4 - <span id="goto5" class="goto">go to frame 5</span></li>
<li id="li5">frame 5 - <span id="goto1" class="goto">go to frame 1</span></li>
</ul>
<div id="1">1</div><div id="2">2</div><div id="3">3</div><div id="4">4</div><div id="5">5</div>
here a little css for visual feedback
div{
height:600px;
background-color:#aaa;
margin-top:20px;
}
and here's the fixed JS
$(document).ready(function(e) {
//SCROLL TO ANCHOR TAG
var $root = $('html, body');
$('.goto').click(function() {
var $gotoid = $(this).prop('id');
var $justid = $gotoid.replace('goto','');
console.log($gotoid);
console.log($justid);
if(typeof $("#"+$justid) != undefined){ // test if target exists
$root.animate({
scrollTop: $("#"+$justid).offset().top
}, 2000);
}
return false;
});
});
And then, the fiddle
Feel free to ask for explainations