mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-16 18:17:31 +08:00
feat(slides): update swiper to latest
* feat(slides): update swiper to latest * chore(slides): remove debug
This commit is contained in:
@ -1,5 +1,13 @@
|
||||
import { Component, Element, Event, EventEmitter, Method, Prop, Watch } from '@stencil/core';
|
||||
import { Swiper } from './vendor/swiper.js';
|
||||
import {
|
||||
Component,
|
||||
Element,
|
||||
Event,
|
||||
EventEmitter,
|
||||
Method,
|
||||
Prop,
|
||||
Watch
|
||||
} from '@stencil/core';
|
||||
import { Swiper } from './vendor/swiper.js';
|
||||
@Component({
|
||||
tag: 'ion-slides',
|
||||
styleUrls: {
|
||||
@ -12,7 +20,6 @@ import { Swiper } from './vendor/swiper.js';
|
||||
assetsDir: 'vendor'
|
||||
})
|
||||
export class Slides {
|
||||
|
||||
private container!: HTMLElement;
|
||||
private swiper: any;
|
||||
|
||||
@ -106,22 +113,15 @@ export class Slides {
|
||||
}
|
||||
|
||||
componentDidUnload() {
|
||||
this.enableKeyboardControl(false);
|
||||
this.swiper.destroy(true, true);
|
||||
}
|
||||
|
||||
private initSlides() {
|
||||
console.debug(`ion-slides, init`);
|
||||
|
||||
this.container = this.el.children[0] as HTMLElement;
|
||||
const finalOptions = this.normalizeOptions();
|
||||
// init swiper core
|
||||
this.swiper = new Swiper(this.container, finalOptions);
|
||||
|
||||
if (finalOptions.keyboardControl) {
|
||||
// init keyboard event listeners
|
||||
this.enableKeyboardControl(true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -203,7 +203,7 @@ export class Slides {
|
||||
*/
|
||||
@Method()
|
||||
startAutoplay(): void {
|
||||
this.swiper.startAutoplay();
|
||||
this.swiper.autoplay.start();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -211,7 +211,7 @@ export class Slides {
|
||||
*/
|
||||
@Method()
|
||||
stopAutoplay(): void {
|
||||
this.swiper.stopAutoplay();
|
||||
this.swiper.autoplay.stop();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -247,21 +247,10 @@ export class Slides {
|
||||
this.swiper.unlockSwipes();
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable or disable keyboard control.
|
||||
*/
|
||||
private enableKeyboardControl(shouldEnableKeyboard: boolean) {
|
||||
if (shouldEnableKeyboard) {
|
||||
return this.swiper.enableKeyboardControl();
|
||||
}
|
||||
this.swiper.disableKeyboardControl();
|
||||
}
|
||||
|
||||
private normalizeOptions() {
|
||||
// Base options, can be changed
|
||||
const swiperOptions = {
|
||||
effect: 'slide',
|
||||
autoplay: 0,
|
||||
direction: 'horizontal',
|
||||
initialSlide: 0,
|
||||
loop: false,
|
||||
@ -323,7 +312,6 @@ export class Slides {
|
||||
runCallbacksOnInit: true,
|
||||
controlBy: 'slide',
|
||||
controlInverse: false,
|
||||
keyboardControl: true,
|
||||
coverflow: {
|
||||
rotate: 50,
|
||||
stretch: 0,
|
||||
@ -369,18 +357,12 @@ export class Slides {
|
||||
};
|
||||
|
||||
// Merge the base, user options, and events together then pas to swiper
|
||||
return Object.assign(
|
||||
{},
|
||||
swiperOptions,
|
||||
this.options,
|
||||
eventOptions
|
||||
);
|
||||
|
||||
}
|
||||
return Object.assign({}, swiperOptions, this.options, eventOptions);
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div class="swiper-container" data-dir="rtl">
|
||||
<div class="swiper-container">
|
||||
<div class="swiper-wrapper">
|
||||
<slot />
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user