2014-10-08 21 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