0

这是我的工作代码,用于折叠字段集并平滑滚动到它们的锚点,但有时在滚动之前会有一个跳转,这并不是很平滑。

function smoothScrollTo(element) {
    var thisTop = $($(element).parent()).offset().top;
    $("html, body").animate({
        scrollTop: thisTop + "px"
    }, {
        duration: 600
    });
    return false;
};

$(document).ready(function () {
    $(".collapsible .collapsed").hide();
    $(".collapsible legend").html(function () {
        var scroll = $(this).parent().hasClass('scroll');
        if (scroll == true) {
            href = "#" + $(this).parent().attr('id');
        } else {
            href = "javascript:void(0)";
        };
        return '<a href="' + href + '">' + $(this).html() + '</a>';
    }).click(function () {
        $(this).parent().children('.content').slideToggle();
    });
    $(".collapsible.scroll legend").click(function () {
        smoothScrollTo(this);
    });

});

我找到了解决方案:e.preventDefault();需要完美滚动

最终代码:http: //jsfiddle.net/eapo/v6URL/2/

4

1 回答 1

1

http://jsfiddle.net/v6URL/1/

$(".collapsible.scroll legend").click(function (e) {
    e.preventDefault();
    smoothScrollTo(this);
});
于 2013-02-10T01:05:15.237 回答