【问题标题】:.slideToggle auto scroll down to reveal content.slideToggle 自动向下滚动以显示内容
【发布时间】:2010-07-29 06:14:28
【问题描述】:

当用户单击链接时,我正在使用 .slideToggle 打开面板:

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

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

切换的 div (#panel) 的内容高于包含 div 的高度,因此显示了 scorllbars。我希望垂直滚动条在 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>

这会使面板滑动,但向下滚动效果不起作用..

【问题讨论】:

  • 如果这没有任何意义,请告诉我,以便我重写它。我真的需要解决这个问题 - 谢谢!
  • 试试这个帖子的解决方案:stackoverflow.com/questions/270612/scroll-to-bottom-of-div var panelDiv = document.getElementById("panel"); panelDiv.scrollTop = panelDiv.scrollHeight;
  • 有人提出了类似的建议,但我似乎无法同时触发这两种效果。只有面板滑动。

标签: javascript jquery html


【解决方案1】:

我以前做过这样的事情:

   $(".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 Plugin,你可以为滑动添加不同的效果,将fx名称添加到代码中(答案中注释掉的行)

改进了代码,因此代码更少但效果相同。

【讨论】:

  • 这似乎是我正在寻找的东西,但我似乎无法让它正常工作。 jsfiddle.net/xmTCs/7
  • 是的,我刚刚让面板幻灯片可以使用它,但向下滚动效果似乎不起作用。
  • 什么是向下滚动效果?
  • panel的内容比它所在的div高,所以出现了滚动条。一旦#panel div 切换,我需要滚动条自动向下滚动到最低点,以便用户看到新内容。
  • 针对您所做的不同效果,但不是为了那个。不是为了例子。是希望面板的滚动条向下滚动还是主要内容滚动到面板顶部?
猜你喜欢
  • 2013-07-13
  • 1970-01-01
  • 2018-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多