页面本身向下滚动后,页面不会滚动到正确的点

时间:2017-08-30 10:43:06

标签: javascript

我有以下内容:

import $ from 'jquery';

class Accordion {
    constructor (s) {
        this.accordion = s.accordion;
        this.tab = s.tab;
    }
}

Accordion.prototype.showFirst = function(){
    $(".accordion__content--0").addClass('show');
    this.accordion.find(".accordion__tab:first-child").addClass('active');
}

Accordion.prototype.showContentOnClick = function(){
    this.tab.on('click', function(){

        let current = $(this),
            currentParent = $(this).parent();

        if ( window.innerWidth < 1024 ) {
            $('html, body').animate({
                scrollTop: current.offset().top
            }, 1000);
        }

        if(!current.hasClass('active')){
            currentParent.find(".accordion__tab").removeClass('active');
            current.addClass('active');
            currentParent.find('.accordion__content').removeClass('show');
            currentParent.find("." + current.data('content')).addClass('show');
        }
        else {
            $(".active").removeClass('active');
            $(".show").removeClass('show');
        }
    });
}

Accordion.prototype.initAccordion = function(){
    this.showFirst();
    this.showContentOnClick();
}

export default Accordion;

如果我向下滚动页面,我按照以下方式点击其中一个标签:

this.tab.on('click', function(){

页面未按预期滚动到确切点:

scrollTop: current.offset().top

如果我打开了一个标签,我向下滚动页面,然后点击下面的另一个标签,发生了一个非常奇怪的跳转。 如何解决这个问题,以便无论页面向下滚动多少,它总是滚动到所需的点?

0 个答案:

没有答案