簡體   English   中英

.slideToggle自動向下滾動以顯示內容

[英].slideToggle auto scroll down to reveal content

當用戶單擊鏈接時,我正在使用.slideToggle打開面板:

<script type="text/javascript"> 
$(document).ready(function(){
$(".btn-slide").click(function(){
$("#panel").slideToggle("slow");
$(this).toggleClass("active"); 

return false;
});
});
</script> 

切換的div(#panel)的內容比包含的div的高度高,因此出現了滾動條。 我希望垂直滾動條在div切換時自動向下滾動以顯示新內容。 我想我可以使用.scrollTop做到這一點,但是我不確定如何同時實現它...有什么想法嗎?

編輯:似乎已經達成共識,這是實現我所描述的最佳方法:

<script type="text/javascript">
$(document).ready(function(){
    $(".btn-slide").click(function(){
        var $panel = $("#panel");
        $panel.slideToggle("slow");
        if ($panel.is(':visible')){
            $panel.parent().scrollTop($panel.height()-$panel.parent().height());
        }
        $(this).toggleClass("active"); 

        return false;
    });
});
</script>

這會使面板滑動,但向下滾動效果不起作用。

我以前做過這樣的事情:

   $(".btn-slide").click(function(event){

    if ( $(this).hasClass("active"))
    {
         $(this).removeClass("active");
         $("#panel").slideUp("slow");
    }
    else
    {
         $(this).addClass("active");
         $("#panel").slideDown("slow");

         var destination = $("#container ").offset().top + $("#container").height();


         $("#container").animate({ scrollTop: destination},"slow");
         //or
         //$("#container").animate({ scrollTop: destination},"slow", "fx_name_here");

    }


    event.preventDefault();
});

HTML:

<a href="#" class="btn-slide">Fire Panel</a>
<div id="container">
    <div id="panel">sdfsdfsdfs</div>
</div>

這樣對您有幫助嗎?

編輯:

如果您下載了jQuery Easing插件 ,則可以向滑動條添加不同的效果,將FX名稱添加到代碼中(在注釋行中注釋)

改進了代碼,因此代碼更少,但效果相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM