ScrollTop问题

时间:2014-05-21 16:55:17

标签: javascript jquery accordion scrolltop

我有一个手风琴功能,当点击它时,它不会将视口调整到open元素的顶部。在移动设备或小屏幕尺寸上观看,看看我在说什么:http://startyourlife.com/biz-training/

以下是一个有效的示例:http://tympanus.net/Tutorials/FlexibleSlideToTopAccordion/

您将看到,如果单击它,则滚动到该元素的顶部。这是我目前的javascript:

if (section_title.length) {
    section_title.click(function () {
        if ((!section.hasClass('active')) && (!running)) {
            running = true;
            var currentHeight, newHeight;
            items.each(function () {
                if ($(this).hasClass('active')) {
                    $(this).removeClass('active');
                }
            });
            if (item.length) {
                item.addClass('active');
            }

            sections.each(function () {
                if ($(this).hasClass('active')) {
                    currentHeight = $(this).find('.w-timeline-section-content').height();
                    $(this).find('.w-timeline-section-content').slideUp();
                }
            });

            newHeight = section_content.height();

            if (activeIndex < index) {

                $('html').animate({
                    scrollTop: $('html').scrollTop() - currentHeight
                });
            }

            section_content.slideDown(null, function () {
                sections.each(function () {
                    if ($(this).hasClass('active')) {
                        $(this).removeClass('active');
                    }
                });
                section.addClass('active');
                activeIndex = index;
                running = false;
            });

        }
    });
}

1 个答案:

答案 0 :(得分:0)

修正了它,在最后一行“running = false”

之后添加
var target = $(section);
    if (target.length) {
        $('html,body').animate({
            scrollTop: target.offset().top
        }, 1000);
        return false;
     }