2015-11-26 2 views
0

Я внедрил Mmenu, и я хотел бы добавить функцию для прокрутки вниз до текущего выбранного элемента - элемента li с именем класса «.current-page».Mmenu - прокрутить к элементу не работает

Я добавил

$("html, body").animate({ scrollTop: $(".current-page").offset().top }, 1500);

к коду MMENU - см Fiddle. Однако он не работает. Страница не прокручивается.

Любые идеи, почему это не работает?

Заранее спасибо.

+0

я не уверен, что вы ожидаете. Меню по умолчанию закрыто –

+0

Да, вы правы. Он должен запускаться только при открытом меню. Я нашел этот пример: http://jsfiddle.net/vanduzled/p9ynx8wc/, но он прокручивается до якоря в области содержимого. Как я могу заставить его работать с элементами меню? Я нашел информацию о api Mmenu: http://mmenu.frebsite.nl/documentation/api.html, но я не уверен, как это сделать. – Meek

ответ

0

Я нашел недокументированные опции апи для MMENU, так что я в конечном итоге делает что-то вроде этого:

var api = $('#menu').data('mmenu'); 
api.bind('opened', function() { 
    if ($(".current-page").length) { 
     var selected = $(".current-page"); 
     selected[0].scrollIntoView({block: "start", behavior: "smooth"}); 
    } 
}); 
0

Вот мой пример использования анимации с scrollTop. Это не решает вашу проблему, но я надеюсь, что это поможет вам начать.

$('button').click(function() { 
 
    $('.demo').animate({ 
 
    scrollTop: $('.demo')[0].scrollHeight 
 
    }, 1500) 
 
})
div { 
 
    width: 250px; 
 
    height: 250px; 
 
    overflow: auto 
 
} 
 
#content { 
 
    height: 800px; 
 
    width: 2000px; 
 
    background-color: coral 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="demo"> 
 
    <div id="content">Content</div> 
 
</div> 
 
<button>Scroll down</button>

+0

Это не работает с Mmenu, извините. – Meek

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