swiper-progress.js 3.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. (function (factory) {
  2. if (typeof module === "object" && typeof module.exports === "object") {
  3. var v = factory(require, exports);
  4. if (v !== undefined) module.exports = v;
  5. }
  6. else if (typeof define === "function" && define.amd) {
  7. define(["require", "exports", "./swiper-utils"], factory);
  8. }
  9. })(function (require, exports) {
  10. "use strict";
  11. Object.defineProperty(exports, "__esModule", { value: true });
  12. var swiper_utils_1 = require("./swiper-utils");
  13. function updateProgress(s, translate) {
  14. if (typeof translate === 'undefined') {
  15. translate = s._translate || 0;
  16. }
  17. var translatesDiff = swiper_utils_1.maxTranslate(s) - swiper_utils_1.minTranslate(s);
  18. var wasBeginning = s._isBeginning;
  19. var wasEnd = s._isEnd;
  20. if (translatesDiff === 0) {
  21. s.progress = 0;
  22. s._isBeginning = s._isEnd = true;
  23. }
  24. else {
  25. s.progress = (translate - swiper_utils_1.minTranslate(s)) / (translatesDiff);
  26. s._isBeginning = s.progress <= 0;
  27. s._isEnd = s.progress >= 1;
  28. }
  29. s._zone.run(function () {
  30. if (s._isBeginning && !wasBeginning) {
  31. s.ionSlideReachStart.emit();
  32. }
  33. if (s._isEnd && !wasEnd) {
  34. s.ionSlideReachEnd.emit();
  35. }
  36. if (s.watchSlidesProgress) {
  37. updateSlidesProgress(s, translate);
  38. }
  39. s.ionSlideProgress.emit(s.progress);
  40. });
  41. }
  42. exports.updateProgress = updateProgress;
  43. function updateSlidesProgress(s, translate) {
  44. if (typeof translate === 'undefined') {
  45. translate = s._translate || 0;
  46. }
  47. if (s._slides.length === 0)
  48. return;
  49. if (typeof s._slides[0].swiperSlideOffset === 'undefined') {
  50. swiper_utils_1.updateSlidesOffset(s);
  51. }
  52. var offsetCenter = -translate;
  53. if (s._rtl)
  54. offsetCenter = translate;
  55. // Visible Slides
  56. swiper_utils_1.removeClass(s._slides, swiper_utils_1.CLS.slideVisible);
  57. for (var i = 0; i < s._slides.length; i++) {
  58. var slide = s._slides[i];
  59. var slideProgress = (offsetCenter + (s.centeredSlides ? swiper_utils_1.minTranslate(s) : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + s.spaceBetween);
  60. if (s.watchSlidesVisibility) {
  61. var slideBefore = -(offsetCenter - slide.swiperSlideOffset);
  62. var slideAfter = slideBefore + s._slidesSizesGrid[i];
  63. var isVisible = (slideBefore >= 0 && slideBefore < s._renderedSize) ||
  64. (slideAfter > 0 && slideAfter <= s._renderedSize) ||
  65. (slideBefore <= 0 && slideAfter >= s._renderedSize);
  66. if (isVisible) {
  67. s._slides[i].classList.add(swiper_utils_1.CLS.slideVisible);
  68. }
  69. }
  70. slide.progress = s._rtl ? -slideProgress : slideProgress;
  71. }
  72. }
  73. });
  74. //# sourceMappingURL=swiper-progress.js.map