2015-11-04 5 views
1

Я использую онсэн пользовательский интерфейс для создания приложения и получил очень длинное меню:Сделать онсэн-UI сползая меню, чтобы перейти к началу

<ons-template id="menu.html"> 
     <ons-page modifier="menu-page"> 
      <ons-toolbar modifier="transparent"></ons-toolbar> 
      <ons-list class="menu-list"> 
       <ons-list-item class="menu-item" ng-click="menu.setMainPage('updates.html', {closeMenu: true})"> 
        <ons-icon icon="fa-updates"></ons-icon>Updates</ons-list-item> 
       <ons-list-item class="menu-item" ng-click="menu.setMainPage('about.html', {closeMenu: true})"> 
        <ons-icon icon="fa-about"></ons-icon>About</ons-list-item> 
       <ons-list-item class="menu-item" ng-click="menu.setMainPage('venue.html', {closeMenu: true})"> 
        <ons-icon icon="fa-venue"></ons-icon>Venue</ons-list-item> 
       <ons-list-item class="menu-item" ng-click="menu.setMainPage('agenda.html', {closeMenu: true})"> 
        <ons-icon icon="fa-agenda"></ons-icon>Agenda</ons-list-item> 
       <ons-list-item class="menu-item" ng-click="menu.setMainPage('speakers.html', {closeMenu: true})"> 
        <ons-icon icon="fa-speakers"></ons-icon>Speakers</ons-list-item> 
       <ons-list-item class="menu-item" ng-click="menu.setMainPage('sponsors.html', {closeMenu: true})"> 
        <ons-icon icon="fa-sponsors"></ons-icon>Sponsors</ons-list-item> 
       <ons-list-item class="menu-item" ng-click="menu.setMainPage('resources.html', {closeMenu: true})"> 
        <ons-icon icon="fa-resources"></ons-icon>Resources</ons-list-item> 
       <ons-list-item class="menu-item" ng-click="menu.setMainPage('feedback.html', {closeMenu: true})"> 
        <ons-icon icon="fa-feedback"></ons-icon>Feedback</ons-list-item> 
       <ons-list-item class="menu-item" ng-click="menu.setMainPage('register.html', {closeMenu: true})"> 
        <ons-icon icon="fa-register"></ons-icon>Register</ons-list-item> 
      </ons-list> 
     </ons-page> 
    </ons-template> 

Когда я нахожусь в маленьком экране и прокрутите вниз по меню его остается в том же положении и не возвращается к первоначальному виду.

Код для меню:

<ons-sliding-menu menu-page="menu.html" main-page="updates.html" side="left" var="menu" type="reveal" max-slide-distance="200px" swipeable="true" ons-postclose="menutotop()"></ons-sliding-menu> 

Я реализовал ONS-postclose = "menutotop()" но это, кажется, не работает с JQuery.

Кто-нибудь знает, как заставить его прокручивать назад, как только он будет закрыт по умолчанию?

ответ

1

Прежде всего, создайте угловой контроллер и добавьте его в элемент div, который обернет элемент ons-sliding-menu. Если вы хотите использовать jQuery, ваш код будет таким (см. Также рабочий CodePen Example).

HTML

<div ng-controller="MyController"><ons-sliding-menu menu-page="menu.html" main-page="updates.html" side="left" var="menu" type="reveal" max-slide-distance="200px" swipeable="true" ons-postclose="menutotop()"></ons-sliding-menu></div>

JS

ons.bootstrap() 
 
    .controller('MyController', function($scope) { 
 
    $scope.menutotop = function() { 
 
     $('.page__content').animate({ 
 
      scrollTop: $('.ons-list-inner').height() 
 
     }) 
 
     .animate({ 
 
      scrollTop: 0 
 
     }); 
 
    } 
 
    });

Надеюсь, это поможет!

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