2014-10-08 39 views
0

我triyng构建一个简单的内容滚动。检测元素是在其父项的顶部 - jQuery

在我utton点击我移动DIV起来,其父下跌15像素,如果其顶部然而ID要禁用此功能,最新最好的方式做到这一点?...

的jsfiddle

http://jsfiddle.net/dwkurpjm/

jQuery的

$('.up').click(function (e) { 
    e.preventDefault(); 
    $(this).parent().prev().find('.inner-scroll').css({ 
     marginTop: '-=15px' 
    }); 
}); 
$('.down').click(function (e) { 
    e.preventDefault(); 
    $(this).parent().prev().find('.inner-scroll').css({ 
     marginTop: '+=15px' 
    }); 
}); 
+0

如果边距值是'> = 0'不加? – charlietfl 2014-10-08 12:54:50

回答

1

而不是使用保证金为什么你不使用scrollTop财产?这是应该用来改变滚动状态的属性。

浏览器将小心不要让值小于0或超出上限。

$('.up').click(function (e) { 
     e.preventDefault(); 
     var s = $(this).parent().prev(); 
     s.scrollTop(s.scrollTop()-15); 
    }); 
    $('.down').click(function (e) { 
     e.preventDefault(); 
     var s = $(this).parent().prev(); 
     s.scrollTop(s.scrollTop()+15); 
    }); 

http://jsfiddle.net/dwkurpjm/2/

0

你需要检查你的内心滚动div的高度动如低于之前,所以,每当顶偏超过父DIV抵消它停止移动。

if($(".inner-scroll").offset().top>$('.scroll').offset().top){ 
//execute your code 
} 

demo