首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >离子2滑块锁

离子2滑块锁
EN

Stack Overflow用户
提问于 2017-05-31 20:14:57
回答 3查看 3.5K关注 0票数 3

我想锁定滑动功能(通过滑动屏幕),它应该工作时,我点击按钮。

由于我对打字很陌生,所以我无法解释我该如何使它起作用。我在离子页上找到了一些文档。

"lockSwipes(shouldLockSwipes)“我认为这是我需要的代码,但我不知道如何将它包含到我的IonicApp中。

HTML

代码语言:javascript
复制
<ion-slide>
  <ion-item>
    <img src="img/question.png (click)="goToSlide1()">
  </ion-item>
</ion-slide>

<ion-slide>
  <ion-item>
    <img src="img/clue.png (click)="goToSlide2()">
  </ion-item>
</ion-slide>

<ion-slide>
  <ion-item>
    <img src="img/answer.png (click)="Finish()">
  </ion-item>
</ion-slide>

TS

代码语言:javascript
复制
        import {Component} from '@angular/core';
        import {NavController} from 'ionic-angular';
        import {Finish} from '../finish/finish';
        import { Slides } from 'ionic-angular';
        import { ViewChild } from '@angular/core';


        @Component({
            templateUrl: 'build/pages/slider/slider.html'
        })
        export class Slider {
            @ViewChild(Slides) slides: Slides;
            value = '';
            changeText(value: string) { this.value = value; }
            constructor(private navController: NavController) {

            goToSlide1() {
                this.slides.slideTo(1, 500);
            }
            goToSlide2() {
                this.slides.slideTo(2, 500);
            }
            goToFinish() {
                this.navController.setRoot(Finish);
            }
    }
}

我希望有人能帮我!谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-31 20:33:01

让我们从头开始。

首先,HTML应该如下所示:

代码语言:javascript
复制
<ion-slides>
    <ion-slide>
    <ion-item>
        <img src="img/question.png (click)="goToSlide1()">
    </ion-item>
    </ion-slide>

    <ion-slide>
    <ion-item>
        <img src="img/clue.png (click)="goToSlide2()">
    </ion-item>
    </ion-slide>

    <ion-slide>
    <ion-item>
        <img src="img/answer.png (click)="Finish()">
    </ion-item>
    </ion-slide>
</ion-slides>

然后,在TS文件中,您应该使用ngAfterViewInit钩子,因为ViewChild组件将在这里准备就绪,而不是在此之前。

所以你的TS应该是这样的:

代码语言:javascript
复制
import {Component} from '@angular/core';
import {NavController} from 'ionic-angular';
import {Finish} from '../finish/finish';
import { Slides } from 'ionic-angular';
import { ViewChild } from '@angular/core';


@Component({
    templateUrl: 'build/pages/slider/slider.html'
})
export class Slider {
    @ViewChild(Slides) slides: Slides;
    value = '';
    changeText(value: string) { this.value = value; }

    constructor(private navController: NavController) {
    }

    ngAfterViewInit() {
        // child is set
        this.slides.lockSwipes(true);
    }

    goToSlide1() {
        this.slides.slideTo(1, 500);
    }

    goToSlide2() {
        this.slides.slideTo(2, 500);
    }

    goToFinish() {
        this.navController.setRoot(Finish);
    }    
}

检查角2钩

这将完成工作,快乐的编码。

票数 2
EN

Stack Overflow用户

发布于 2018-02-20 10:00:10

我用的是Ionic版本3,我做了这样的事情

在HTML中

代码语言:javascript
复制
<ion-slides #mySlider> 
  <ion-slide class="swiper-no-swiping">Content 1 </ion-slide>
  <ion-slide class="swiper-no-swiping">Content 2 </ion-slide>
</ion-slides>

在TS文件中

代码语言:javascript
复制
@ViewChild('mySlider') mySlider: Slides;

ionViewDidLoad() {
  this.mySlider.lockSwipes(true);
}

请注意:在html中需要为每一张幻灯片添加“滑动-不-滑动”,这将禁用交换。

票数 3
EN

Stack Overflow用户

发布于 2018-02-09 22:20:56

将其添加到ionViewDidLoad函数中

ionViewDidLoad() {this.slides.lockSwipes(真);}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44293911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档