0

我正在使用以下 jquery 函数来 slideToggle .toggle-box 并在 slideToggle 完成后滚动到顶部。这在向下滑动 .toggle-box 时效果很好,但在向上滑动时,这两个功能似乎同时运行。工作示例:http: //jsfiddle.net/7udLq/12/

jQuery(".toggle-box").hide();

jQuery("a.toggle").click(function (e) {

    jQuery(".toggle-box").slideToggle(1500, function () {
        jQuery("html,body").animate({
            scrollTop: jQuery(".toggle").offset().top
        }, {
            duration: 500,
            easing: "easeOutQuint"
        });
    });

    e.preventDefault();

});

更新: 修复实际上非常简单,并且适用于简单的 css。通过添加底部:0;到被切换的框它工作正常

.toggle-box {
    background-color:green;
    height:500px;
    bottom:0;
}

http://jsfiddle.net/7udLq/16/

4

1 回答 1

0

问题是当 box slideup, body height 改变浏览器scroll到页面顶部时。

看看我在说什么:(我在演示目的上使用 slideDown/slideUp,当 slideDown/scrolltop 完成时插入一个临时 div)

http://jsfiddle.net/7udLq/13/

于 2013-01-18T17:49:32.977 回答