Onsen UI:使用ons-list自动滚动

que*_*mme 7 onsen-ui

我想以WhatsApp风格编程聊天.最新消息将在下面显示,并且新消息将自动向下滚动.任何人都可以帮助我如何实现自动滚动ons-list?

<ons-template id="chat.html">
    <ons-page ng-controller="ChatController">
        <ons-toolbar>
            <div class="left"><ons-back-button>Back</ons-back-button></div>
            <div class="center">Chat</div>
        </ons-toolbar>

        <ons-list style="margin-top: 10px" scroll-glue>
            <ons-list-item class="item" ng-repeat="msg in messages">
                <header>
                    <span class="item-title">{{msg.user}}</span>
                </header>
                <p class="item-desc">{{msg.msg}}</p>
            </ons-list-item>
        </ons-list>
    </ons-page>
</ons-template>
Run Code Online (Sandbox Code Playgroud)

cit*_*her 6

我没有使用WhatsApp,但这可能有所帮助.在一个ons-page,你可以使用.page__contentscrollTop属性进行自动滚动.如下.它使用jQuery进行动画制作.

ons.bootstrap()
.controller('ChatController', function($scope, $timeout){
  $scope.messages = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
  $timeout(function(){
    $('.page__content').animate({scrollTop: $('.ons-list-inner').height()}, 2000)
    .animate({scrollTop: 0}, 2000);
  });
});
Run Code Online (Sandbox Code Playgroud)
<link href="https://cdn.rawgit.com/OnsenUI/OnsenUI/1.3.8/build/css/onsen-css-components.css" rel="stylesheet"/>
<link href="https://cdn.rawgit.com/OnsenUI/OnsenUI/1.3.8/build/css/onsenui.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://cdn.rawgit.com/OnsenUI/OnsenUI/1.3.8/build/js/angular/angular.min.js"></script>
<script src="https://cdn.rawgit.com/OnsenUI/OnsenUI/1.3.8/build/js/onsenui.min.js"></script>

<ons-navigator page="chat.html"></ons-navigator>

<ons-template id="chat.html">
    <ons-page ng-controller="ChatController">
        <ons-toolbar>
            <div class="left"><ons-back-button>Back</ons-back-button></div>
            <div class="center">Chat</div>
        </ons-toolbar>

        <ons-list style="margin-top: 10px" scroll-glue>
            <ons-list-item class="item" ng-repeat="msg in messages">
                <header>
                    <span class="item-title">{{msg.user}}</span>
                </header>
                <p class="item-desc">{{msg.msg}}</p>
            </ons-list-item>
        </ons-list>
    </ons-page>
</ons-template>
Run Code Online (Sandbox Code Playgroud)