有没有办法动态改变 ion-slide box slide-interval 值?
Is there a way to dynamically change ion-slide box slide-interval value?
几天来我一直在为这个问题苦苦挣扎,非常感谢你的帮助。
我有一个指令,其中有一个广告幻灯片,其幻灯片间隔与范围内的一个 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
}
}
})
我认为,为了完成您的要求,您必须修改 ionic.bundle.js,因为我不确定这是否受支持。相反,您可以关闭自动播放并自行管理循环:
var nextSlide = function(){
$ionicSlideBoxDelegate.$getByHandle(YOUR_DELEGATE_HANDLE).next(ANIMATION_SPEED);
setTimeout(nextSlide, YOUR_SLIDE_INTERVAL);
}
nextSlide();
您可能还想捕捉到用户自己更换幻灯片并重置您的超时功能。
几天来我一直在为这个问题苦苦挣扎,非常感谢你的帮助。
我有一个指令,其中有一个广告幻灯片,其幻灯片间隔与范围内的一个 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
}
}
})
我认为,为了完成您的要求,您必须修改 ionic.bundle.js,因为我不确定这是否受支持。相反,您可以关闭自动播放并自行管理循环:
var nextSlide = function(){
$ionicSlideBoxDelegate.$getByHandle(YOUR_DELEGATE_HANDLE).next(ANIMATION_SPEED);
setTimeout(nextSlide, YOUR_SLIDE_INTERVAL);
}
nextSlide();
您可能还想捕捉到用户自己更换幻灯片并重置您的超时功能。