First upload
This commit is contained in:
@@ -0,0 +1,229 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
var _ssrWindow = require("ssr-window");
|
||||
|
||||
var _utils = require("../../utils/utils");
|
||||
|
||||
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
||||
|
||||
var Autoplay = {
|
||||
run: function run() {
|
||||
var swiper = this;
|
||||
var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);
|
||||
var delay = swiper.params.autoplay.delay;
|
||||
|
||||
if ($activeSlideEl.attr('data-swiper-autoplay')) {
|
||||
delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;
|
||||
}
|
||||
|
||||
clearTimeout(swiper.autoplay.timeout);
|
||||
swiper.autoplay.timeout = (0, _utils.nextTick)(function () {
|
||||
var autoplayResult;
|
||||
|
||||
if (swiper.params.autoplay.reverseDirection) {
|
||||
if (swiper.params.loop) {
|
||||
swiper.loopFix();
|
||||
autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);
|
||||
swiper.emit('autoplay');
|
||||
} else if (!swiper.isBeginning) {
|
||||
autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);
|
||||
swiper.emit('autoplay');
|
||||
} else if (!swiper.params.autoplay.stopOnLastSlide) {
|
||||
autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);
|
||||
swiper.emit('autoplay');
|
||||
} else {
|
||||
swiper.autoplay.stop();
|
||||
}
|
||||
} else if (swiper.params.loop) {
|
||||
swiper.loopFix();
|
||||
autoplayResult = swiper.slideNext(swiper.params.speed, true, true);
|
||||
swiper.emit('autoplay');
|
||||
} else if (!swiper.isEnd) {
|
||||
autoplayResult = swiper.slideNext(swiper.params.speed, true, true);
|
||||
swiper.emit('autoplay');
|
||||
} else if (!swiper.params.autoplay.stopOnLastSlide) {
|
||||
autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);
|
||||
swiper.emit('autoplay');
|
||||
} else {
|
||||
swiper.autoplay.stop();
|
||||
}
|
||||
|
||||
if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {
|
||||
swiper.autoplay.run();
|
||||
}
|
||||
}, delay);
|
||||
},
|
||||
start: function start() {
|
||||
var swiper = this;
|
||||
if (typeof swiper.autoplay.timeout !== 'undefined') return false;
|
||||
if (swiper.autoplay.running) return false;
|
||||
swiper.autoplay.running = true;
|
||||
swiper.emit('autoplayStart');
|
||||
swiper.autoplay.run();
|
||||
return true;
|
||||
},
|
||||
stop: function stop() {
|
||||
var swiper = this;
|
||||
if (!swiper.autoplay.running) return false;
|
||||
if (typeof swiper.autoplay.timeout === 'undefined') return false;
|
||||
|
||||
if (swiper.autoplay.timeout) {
|
||||
clearTimeout(swiper.autoplay.timeout);
|
||||
swiper.autoplay.timeout = undefined;
|
||||
}
|
||||
|
||||
swiper.autoplay.running = false;
|
||||
swiper.emit('autoplayStop');
|
||||
return true;
|
||||
},
|
||||
pause: function pause(speed) {
|
||||
var swiper = this;
|
||||
if (!swiper.autoplay.running) return;
|
||||
if (swiper.autoplay.paused) return;
|
||||
if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);
|
||||
swiper.autoplay.paused = true;
|
||||
|
||||
if (speed === 0 || !swiper.params.autoplay.waitForTransition) {
|
||||
swiper.autoplay.paused = false;
|
||||
swiper.autoplay.run();
|
||||
} else {
|
||||
['transitionend', 'webkitTransitionEnd'].forEach(function (event) {
|
||||
swiper.$wrapperEl[0].addEventListener(event, swiper.autoplay.onTransitionEnd);
|
||||
});
|
||||
}
|
||||
},
|
||||
onVisibilityChange: function onVisibilityChange() {
|
||||
var swiper = this;
|
||||
var document = (0, _ssrWindow.getDocument)();
|
||||
|
||||
if (document.visibilityState === 'hidden' && swiper.autoplay.running) {
|
||||
swiper.autoplay.pause();
|
||||
}
|
||||
|
||||
if (document.visibilityState === 'visible' && swiper.autoplay.paused) {
|
||||
swiper.autoplay.run();
|
||||
swiper.autoplay.paused = false;
|
||||
}
|
||||
},
|
||||
onTransitionEnd: function onTransitionEnd(e) {
|
||||
var swiper = this;
|
||||
if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;
|
||||
if (e.target !== swiper.$wrapperEl[0]) return;
|
||||
['transitionend', 'webkitTransitionEnd'].forEach(function (event) {
|
||||
swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);
|
||||
});
|
||||
swiper.autoplay.paused = false;
|
||||
|
||||
if (!swiper.autoplay.running) {
|
||||
swiper.autoplay.stop();
|
||||
} else {
|
||||
swiper.autoplay.run();
|
||||
}
|
||||
},
|
||||
onMouseEnter: function onMouseEnter() {
|
||||
var swiper = this;
|
||||
|
||||
if (swiper.params.autoplay.disableOnInteraction) {
|
||||
swiper.autoplay.stop();
|
||||
} else {
|
||||
swiper.autoplay.pause();
|
||||
}
|
||||
|
||||
['transitionend', 'webkitTransitionEnd'].forEach(function (event) {
|
||||
swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);
|
||||
});
|
||||
},
|
||||
onMouseLeave: function onMouseLeave() {
|
||||
var swiper = this;
|
||||
|
||||
if (swiper.params.autoplay.disableOnInteraction) {
|
||||
return;
|
||||
}
|
||||
|
||||
swiper.autoplay.paused = false;
|
||||
swiper.autoplay.run();
|
||||
},
|
||||
attachMouseEvents: function attachMouseEvents() {
|
||||
var swiper = this;
|
||||
|
||||
if (swiper.params.autoplay.pauseOnMouseEnter) {
|
||||
swiper.$el.on('mouseenter', swiper.autoplay.onMouseEnter);
|
||||
swiper.$el.on('mouseleave', swiper.autoplay.onMouseLeave);
|
||||
}
|
||||
},
|
||||
detachMouseEvents: function detachMouseEvents() {
|
||||
var swiper = this;
|
||||
swiper.$el.off('mouseenter', swiper.autoplay.onMouseEnter);
|
||||
swiper.$el.off('mouseleave', swiper.autoplay.onMouseLeave);
|
||||
}
|
||||
};
|
||||
var _default = {
|
||||
name: 'autoplay',
|
||||
params: {
|
||||
autoplay: {
|
||||
enabled: false,
|
||||
delay: 3000,
|
||||
waitForTransition: true,
|
||||
disableOnInteraction: true,
|
||||
stopOnLastSlide: false,
|
||||
reverseDirection: false,
|
||||
pauseOnMouseEnter: false
|
||||
}
|
||||
},
|
||||
create: function create() {
|
||||
var swiper = this;
|
||||
(0, _utils.bindModuleMethods)(swiper, {
|
||||
autoplay: _extends({}, Autoplay, {
|
||||
running: false,
|
||||
paused: false
|
||||
})
|
||||
});
|
||||
},
|
||||
on: {
|
||||
init: function init(swiper) {
|
||||
if (swiper.params.autoplay.enabled) {
|
||||
swiper.autoplay.start();
|
||||
var document = (0, _ssrWindow.getDocument)();
|
||||
document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);
|
||||
swiper.autoplay.attachMouseEvents();
|
||||
}
|
||||
},
|
||||
beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {
|
||||
if (swiper.autoplay.running) {
|
||||
if (internal || !swiper.params.autoplay.disableOnInteraction) {
|
||||
swiper.autoplay.pause(speed);
|
||||
} else {
|
||||
swiper.autoplay.stop();
|
||||
}
|
||||
}
|
||||
},
|
||||
sliderFirstMove: function sliderFirstMove(swiper) {
|
||||
if (swiper.autoplay.running) {
|
||||
if (swiper.params.autoplay.disableOnInteraction) {
|
||||
swiper.autoplay.stop();
|
||||
} else {
|
||||
swiper.autoplay.pause();
|
||||
}
|
||||
}
|
||||
},
|
||||
touchEnd: function touchEnd(swiper) {
|
||||
if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {
|
||||
swiper.autoplay.run();
|
||||
}
|
||||
},
|
||||
destroy: function destroy(swiper) {
|
||||
swiper.autoplay.detachMouseEvents();
|
||||
|
||||
if (swiper.autoplay.running) {
|
||||
swiper.autoplay.stop();
|
||||
}
|
||||
|
||||
var document = (0, _ssrWindow.getDocument)();
|
||||
document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);
|
||||
}
|
||||
}
|
||||
};
|
||||
exports.default = _default;
|
||||
Reference in New Issue
Block a user