Javascript 使用按钮代替滑动的离子滑动盒
我试图使用一个按钮来浏览幻灯片,但是它不起作用。到目前为止,我已经做到了: HTML: 它显示日志“点击”,但我不知道滑块本身有什么问题Javascript 使用按钮代替滑动的离子滑动盒,javascript,html,ionic-framework,ionic,Javascript,Html,Ionic Framework,Ionic,我试图使用一个按钮来浏览幻灯片,但是它不起作用。到目前为止,我已经做到了: HTML: 它显示日志“点击”,但我不知道滑块本身有什么问题 我真的需要帮助。我为你做了一个小演示 HTML <div class="button-bar"> <a ng-repeat="button in buttons" ng-class="{'active': $index === current}" ng-click="slide($index)" class="button butt
我真的需要帮助。我为你做了一个小演示 HTML
<div class="button-bar">
<a ng-repeat="button in buttons" ng-class="{'active': $index === current}" ng-click="slide($index)" class="button button-stable">{{ button.name }}</a>
</div>
<ion-slide-box on-slide-changed="slideHasChanged($index)" slide-interval="1000" does-continue="true">
<ion-slide>
<div class="box" style="text-align:center;">
First slide
</div>
</ion-slide>
<ion-slide>
<ion-slide>
<div class="box" style="text-align:center;">
Second slide
</div>
</ion-slide>
</ion-slide>
</ion-slide-box>
如果您需要任何附加功能,请告诉我?回答得有点晚,但我已经为这个组件苦苦挣扎了一段时间。 您也可以直接调用slider方法,初始化时,只需将slider对象存储在控制器中,然后使用它: HTML:
<ion-slides
options="ctrl.slideOptions"
slider="ctrl.slider"
style="margin: -13px 0 0; height: 19.1em;">
<ion-slide-page
ng-repeat="b in ctrl.slideCollection"
ng-click="transCtrl.selectSlide(b)">
<!-- slide content here -->
</ion-slide-page>
<div class="swiper-button-next icon ion-chevron-right" ng-click="ctrl.slideNext($event)"></div>
<div class="swiper-button-prev icon ion-chevron-left" ng-click="ctrl.slidePrev($event)"></div>
</ion-slides>
ng click部分并不总是必要的,但是如果事情没有按预期工作,最好有一个解决方法
我还对CSS按钮进行了调整:
.swiper-button-next, .swiper-button-prev {
background: none;
}
如果你更喜欢Ionic图标而不是swiper图标(难看的蓝色插入符号…你真的只有一张幻灯片吗?也许可以尝试设置一个手柄id
,然后在控制器中:$ionicSlideBoxDelegate.$getByHandle('test')。next()我很抱歉,因为我很忙,所以没有及时回复。现在,我只是想浏览下一个/上一个,我想从幻灯片2开始。对于使用委托句柄的建议,它在控制台中给了我一条关于使用$timeout的消息,我试图将ionic next方法放入一个超时内,但不幸的是,它无法工作。您的Plunker工作得很好。但是它说“to”没有定义。我遗漏了什么吗?不起作用:(你的“slideHasChanged”怎么办?控制器中是否也要定义一个?也许这就是我遗漏的?@NSaa没有必要定义slideHasChanged()方法。因为它是dirctive的一部分,我不会出错,日志仍然显示“单击”。我不知道我做错了什么,但我有点不对劲。好吧,我看到关于幻灯片的问题了。实际上,我必须复制代码,导入Viewchild和幻灯片,然后使用Viewchid如上所述编写代码创建幻灯片的子项它将在函数中使用,因为我创建了两个函数goToNextSlide()html代码中的goToPrevSlide只需对prev.使用click函数,下一步按钮(单击)=“goToNextSlide()”与prev.按钮相同
$scope.buttons = [{
name: '1'
}, {
name: '2'
}];
$scope.slide = function($index) {
$scope.current = $index;
$ionicSlideBoxDelegate.slide($index);
}
<ion-slides
options="ctrl.slideOptions"
slider="ctrl.slider"
style="margin: -13px 0 0; height: 19.1em;">
<ion-slide-page
ng-repeat="b in ctrl.slideCollection"
ng-click="transCtrl.selectSlide(b)">
<!-- slide content here -->
</ion-slide-page>
<div class="swiper-button-next icon ion-chevron-right" ng-click="ctrl.slideNext($event)"></div>
<div class="swiper-button-prev icon ion-chevron-left" ng-click="ctrl.slidePrev($event)"></div>
</ion-slides>
ctrl.slideOptions = {
loop: true,
nextButton: '.swiper-button-next',
prevButton: '.swiper-button-prev',
pagination: false,
effect: 'coverflow',
coverflow: {
rotate: 50,
stretch: 0,
depth: 100,
modifier: 1,
slideShadows : false
}
};
$scope.$on("$ionicSlides.sliderInitialized", function(event, data){
// data.slider is the instance of Swiper
ctrl.slider = data.slider;
ctrl.activeIndex = 0;
});
$scope.$on("$ionicSlides.slideChangeStart", function(event, data){
console.log('Slide change is beginning');
});
$scope.$on("$ionicSlides.slideChangeEnd", function(event, data){
// note: the indexes are 0-based
ctrl.activeIndex = data.slider.activeIndex;
ctrl.previousIndex = data.slider.previousIndex;
});
ctrl.slideNext = function($event) {
ctrl.slider.onClickNext($event);
}
ctrl.slidePrev = function($event) {
ctrl.slider.onClickPrev($event);
}
.swiper-button-next, .swiper-button-prev {
background: none;
}
import { Component,ViewChild } from '@angular/core';
import { Slides } from 'ionic-angular';
@Component({ selector: 'page-calender', templateUrl: 'calender.html' })
export class CalenderPage {
@ViewChild(Slides) slides: Slides;
constructor() {}
gotoNextSlide() { this.slides.slideNext(); }
gotoPrevSlide() { this.slides.slidePrev(); }
}