首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery SlideToggle和滚动

问Jquery SlideToggle和滚动
EN

Stack Overflow用户
提问于 2011-04-12 21:46:03
回答 1查看 8.3K关注 0票数 4

我有一个问题,滑动切换链接出现在我的页面底部。实际上,我希望用户单击以显示/隐藏隐藏的div (这很好用)

问题是页面不能向下滚动来显示now,而不是隐藏的div

作为JQuery新手,有没有什么方法可以切换div并使其在页面上居中?或者至少向下滚动,而不会让事情变得太复杂?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-04-12 22:55:13

要执行此函数,我建议使用scrollTop函数通过slideToggle调用的回调来设置文档滚动。您将能够通过使用offset获取切换的容器相对于页面的顶部位置来确定scrollTop设置器的值。我建议将滚动行为限制为仅在元素显示时触发,而不是隐藏。

通常,直接设置页面滚动可能是一个稍微不协调的用户体验。出于这个原因,我实际上将给您提供动画scrollTop的代码,而不是直接使用scrollTop函数设置它,但这种方法并不是必需的,因为直接调用scrollTop将同等地定位页面。我只是认为,作为一个用户,我宁愿看到一个渐进的滚动,而不是一个突然的位置变化。

例如,代码将采用以下形式:

代码语言:javascript
复制
$(".myShowHideLink").click(function() {
    $(".myToggleContainer").slideToggle("slow", function() {
        if ($(this).is(":visible")) {
            $(document).animate({
                scrollTop: $(this).offset().top
            }, "slow")
        }
    });
});

您可能希望实际使用$(this).offset().top - 50或类似的东西,以便滚动条设置在容器顶部的上方几个像素处,但这取决于您。我发现我不喜欢我的元素与窗口的顶部边框发生冲突。

我很抱歉我没有为此创建测试用例,因为我是信口开河,但如果它不能像广告宣传的那样工作,请让我知道,我会调整代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5636229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档