2014-09-11 2 views
1

Я использую этот скрипт для перехода к показанному схлопывания элементу:Bootstrap разрушаться scrollTop свитки к неправильному элементу

$('.collapse').on('shown.bs.collapse', function() { 
    $('html, body').stop().animate({ 
    scrollTop: $(this).offset().top 
    }, 500, 'swing'); 
}); 

Он отлично работает для всего, кроме моей навигации на очень маленьких размерах экрана. При открытии меню я хочу, чтобы он прокручивался до верхней части навигатора. Это отлично работает для моего верхнего уровня nav, но для моего второго уровня nav он прокручивается в верхнюю часть раздела, а не на навигацию.

Bootply

(используйте мобильный предварительный просмотр -> нажмите кнопку, чтобы открыть складную СЧА -> нажмите кнопку «Ссылка 1» -> прокрутите вниз и нажмите кнопку, чтобы открыть второй разрушилась нав)

Как вы увидите он прокручивается до заголовка «Ссылка 1», а не только навигатора, который только что был открыт.

ответ

0

Этот вопрос, который был оставлен без ответа, несколько раз меня бил, поэтому я посмотрел на него почти 3 года спустя. Я обнаружил, что и родительский, и второй навигаторы стреляли во второе «показанное» событие.

Я тогда нашел это similar question, а accepted answer держал ключ.

Это было так же просто, как использование метода stopPropagation объекта event, чтобы исключить уведомление о событии родительского коллапса.

$('.collapse').on('shown.bs.collapse', function (event) { 
    event.stopPropagation(); 
    $('html, body').stop().animate({ 
     'scrollTop': $(this).offset().top 
    }, 500, 'swing'); 
}); 

Обновлено bootply.

Смежные вопросы