次のjQueryコードがあります:
$('#staff_list').scroll(function(){
var dif = scrollPrev - $('#staff_list').scrollTop();
scrollPrev = $('#staff_list').scrollTop();
var pos = parseInt($('.selected').css('margin-top')) + dif;
var limit = $('.selected').position().top + parseInt($('.selected').css('margin-top'));
if( limit < 474 ) {
$('.selected').css('margin-top',pos + 'px');
}
});
このコードは、リストがスクロールされたときに確実に$('.selected')
移動することを想定しています。ただし、移動量を制限し、リストの下部にある境界を維持し$('#staff_list')
たいと考えています。$('.selected')
下限に達したときを除いて、すべてが機能しますが、$('.selected')
(本来あるべきように)移動が停止しますが、その後完全に停止します!そのため、上にスクロールしても移動しなくなりました。限界に達したとき、私が何をしても永遠にそこにとどまるようなものです!
この予期しない動作の原因は何ですか?