离子降低滚动速度

时间:2015-04-20 08:16:02

标签: ionic-framework

我试图减慢此代码的滚动时出现问题:

$ionicScrollDelegate.$getByHandle('credit').scrollBottom(true). 

如何减慢滚动速度?因为现在滚动速度太快了。我需要放慢速度,就像星球大战电影中的信用场景一样。

非常感谢Anyhelp,谢谢!

$scope.viewCreditsV2 = function () {
    $ionicModal.fromTemplateUrl('views/popupcredit.html', {
        scope: $scope,
        animation: 'slide-in-up'
    }).then(function(modal) {
            $scope.modal = modal;
            $scope.modal.show();
            if ($scope.modal.isShown()){                               
                setTimeout(function() {
                      // Do something after 2 seconds
                     $ionicScrollDelegate.$getByHandle('credit').scrollBottom(true);
                }, 2000);
            }
        });

    $scope.openModal = function() {
        $scope.modal.show();
    };
    $scope.closeModal = function() {
        // $scope.modal.hide();
        $scope.modal.remove();
    };
};

2 个答案:

答案 0 :(得分:10)

这个问题很陈旧,但有人可能会使用它。

即使没有参数传递选项,您仍然可以使用$ionScrollDelegate访问ScrollView对象。

按照@Jeremy Wilken的回答(帮助我推导出这个),你可以这样做:

$timeout(function() {
    $ionicScrollDelegate.getScrollView().options.animationDuration = 400;
    console.log($ionicScrollDelegate.getScrollView().options);
});


//.....

$ionicScrollDelegate.scrollBy(0,20, true) // Animation will be slower now

我将电话打包在$timeout上,以避免来自$ionicScrollDelegate的竞赛条件未被创建。

答案 1 :(得分:1)

Ionic没有办法改变$ ionicScrollDelegate的动画速度。没有公共API可以进行此更改。

https://github.com/driftyco/ionic/blob/master/js/views/scrollView.js#L327

您可以使用$anchorScroll,如Angular文档中所示https://docs.angularjs.org/api/ng/service/ $ anchorScroll