1

我已经为此苦苦挣扎了好几天,我会感谢你的帮助。

我有一个指令,其中有一个广告幻灯片,其中幻灯片间隔与范围内的 var 相关联,我试图通过更新该变量来更改它们中的每一个在 slideChanged 函数中保持活动的时间,下一行代码是重新加载ionicSlideBoxDeletegate,但是,它根本没有加速动画。这是代码...

.directive('adDirective', function( $ionicSlideBoxDelegate ){
    return {
        restrict: "E",
        replace: true,
        template: ( '<div class="absolute promo-banner-wrp">'
                    + '<ion-slide-box ng-init="disableSwipe()" auto-play="true" on-slide-changed="slideChanged(index)" show-pager="false" does-continue="true" slide-interval="{{speed}}" ng-if="ads.length">'
                        + '<ion-slide ng-click="adTap(ad)" ng-repeat="ad in ads">'
                            + '<img ng-src="{{ad.src}}" />'
                        + '</ion-slide>'
                    + '</ion-slide-box></div>' ),
        controller: function($scope) {
            $scope.slideChanged = function ( index ) {
                $scope.speed = parseInt( $scope.ads[index].category + '000' );
                $ionicSlideBoxDelegate.update();
            };
            $scope.speed = 2000;//In miliseconds
        }
    }
})
4

1 回答 1

0

我认为为了做你所要求的,你必须修改 ionic.bundle.js 因为我不确定这是否受支持。相反,您可以关闭自动播放并自己管理循环:

var nextSlide = function(){
    $ionicSlideBoxDelegate.$getByHandle(YOUR_DELEGATE_HANDLE).next(ANIMATION_SPEED);
    setTimeout(nextSlide, YOUR_SLIDE_INTERVAL);
}
nextSlide();

您可能还想捕捉用户自己更改幻灯片并重置您的超时功能。

于 2016-07-19T21:00:53.030 回答