2013-02-21 78 views
0

我想在我的網站上製作一個簡單的垂直滑塊。有了這個簡單的代碼找出div的總高度

$('.down').click(function(){ 
    $('#container_slider_youtube').animate({ marginTop: '-=410px'}, 1000); 
}); 

$('.up').click(function(){ 
    $('#container_slider_youtube').animate({ marginTop: '+=410px'}, 1000); 
}); 

我可以滑動我的容器,其中的一切在上下工作正常。但我遇到的一個問題是,你可以繼續按下向上或向下按鈕,這完全混淆了div的位置。那麼解決這個問題的好方法是什麼?

回答

1

可能最好不要依賴相對值,而是計算新的靜態值以分配給.animate()

此外,對於這樣的應用程序,我發現使用CSS positiontop而不是依靠margin更簡單。一些(較老的)瀏覽器似乎對一千個地獄之火燃燒的負邊緣感到厭惡。

// example 
var container = $('#container_slider_youtube'), 
    parent = container.parent(), 
    step = 410 
    ; 
$('.down').click(function() { 

    var currentTop = container.css('top'), 
     newTop = Math.max(0, currentTop - step) 
     ; 

    container.animate({ marginTop : newTop }, 1000); 

}); 

您可以將其改編爲.up點擊。確保你考慮到容器父母的身高(最有可能使用.height())。

如果你要去的CSS position路線,確保容器父至少position:relative,那容器是至少一樣好。我親自將容器設置爲position:absolute