|
366 | 366 | clones: [], |
367 | 367 | mouseDown: false, |
368 | 368 | mouseOver: false, |
369 | | - touch: { enabled: true, dragging: false, dragStartX: 0, dragAmount: 0 }, |
| 369 | + touch: { enabled: true, dragging: false, dragStartX: 0, dragNowX: 0, dragAmount: 0 }, |
370 | 370 | transition: { currentTranslation: 0, speed: 0, animated: false }, |
371 | 371 | timer: null, |
372 | 372 | arrowPrevDisabled: false, |
|
646 | 646 | this.cloneSlides(); |
647 | 647 | } |
648 | 648 |
|
| 649 | + // Store current drag position in var for distance calculation in onMouseUp(). |
| 650 | + this.touch.dragNowX = this.getCurrentMouseX(e); |
| 651 | + |
649 | 652 | if (this.conf.draggingDistance) { |
650 | | - this.touch.dragAmount = this.getDragAmount(e); |
| 653 | + this.touch.dragAmount = this.touch.dragNowX - this.touch.dragStartX; |
651 | 654 | var dragAmountPercentage = this.touch.dragAmount / this.container.clientWidth; |
652 | 655 |
|
653 | 656 | this.updateCurrentTranslation(); |
654 | 657 | this.transition.currentTranslation += 100 * dragAmountPercentage; |
655 | 658 | } else { |
656 | | - this.updateCurrentTranslation(null, this.getCurrentMouseX(e)); |
| 659 | + this.updateCurrentTranslation(null, this.touch.dragNowX); |
657 | 660 | } |
658 | 661 | } |
659 | 662 | }, |
|
667 | 670 | var dragAmount = this.conf.draggingDistance ? -this.touch.dragAmount : 0; |
668 | 671 | var realCurrentSlideIndex = this.slides.current + !!this.clones.length * 1; // Takes clones in account if any. |
669 | 672 | var dragPercentageStart = (this.touch.dragStartX - this.container.offsetLeft) / this.container.clientWidth; |
670 | | - var dragPercentageNow = (this.getCurrentMouseX(e) - this.container.offsetLeft) / this.container.clientWidth; |
| 673 | + var dragPercentageNow = (this.touch.dragNowX - this.container.offsetLeft) / this.container.clientWidth; |
671 | 674 | var dragPercentage = ((dragPercentageStart < 0.5 ? 0 : 1) - dragPercentageNow) * 100; |
672 | 675 | var forwards = (dragAmount || dragPercentage) > 0; |
673 | 676 |
|
|
691 | 694 | } else this.cancelSlideChange(); |
692 | 695 |
|
693 | 696 | this.touch.dragStartX = null; |
| 697 | + this.touch.dragNowX = null; |
694 | 698 | this.touch.dragAmount = null; |
695 | 699 | // this.enableScroll() |
696 | 700 | }, |
|
707 | 711 | }, |
708 | 712 |
|
709 | 713 |
|
710 | | - /** |
711 | | - * Return the x distance in pixel between drag start and current drag position. |
712 | | - */ |
713 | | - getDragAmount: function getDragAmount(e) { |
714 | | - return ('ontouchstart' in window ? e.touches[0].clientX : e.clientX) - this.touch.dragStartX; |
715 | | - }, |
716 | | - |
717 | | - |
718 | 714 | /** |
719 | 715 | * The translation of most cases, in other cases this can still be used as a base calc. |
720 | 716 | */ |
|
1296 | 1292 | /* style */ |
1297 | 1293 | var __vue_inject_styles__$1 = function __vue_inject_styles__(inject) { |
1298 | 1294 | if (!inject) return; |
1299 | | - inject("data-v-f2e9e65c_0", { source: "\n.vueperslides {\n position: relative;\n}\n.vueperslides--fixed-height .vueperslides__inner,\n .vueperslides--fixed-height .vueperslides__parallax-wrapper,\n .vueperslides--fixed-height .vueperslide {\n height: inherit;\n}\n.vueperslides--fixed-height .vueperslides__parallax-wrapper {\n padding-bottom: 0 !important;\n}\n.vueperslides__inner {\n position: relative;\n user-select: none;\n}\n.vueperslides__parallax-wrapper {\n position: relative;\n overflow: hidden;\n}\n.vueperslides__track {\n position: absolute;\n top: 0;\n height: 100%;\n left: 0;\n right: 0;\n overflow: hidden;\n z-index: 1;\n}\n.vueperslides--parallax .vueperslides__track {\n height: 200%;\n transform: translateY(0);\n}\n.vueperslides--touchable .vueperslides__track {\n cursor: ew-resize;\n cursor: -webkit-grab;\n cursor: grab;\n}\n.vueperslides--touchable .vueperslides__track--mousedown, .vueperslides--touchable .vueperslides__track--dragging {\n cursor: -webkit-grabbing;\n cursor: grabbing;\n}\n.vueperslides__track-inner {\n white-space: nowrap;\n transition: 0.5s ease-in-out transform;\n height: 100%;\n}\n.vueperslides--fade .vueperslides__track-inner {\n white-space: normal;\n transition: none;\n}\n.vueperslides__track--mousedown .vueperslides__track-inner {\n transition: 0.2s ease-in-out transform !important;\n}\n.vueperslides__track--dragging .vueperslides__track-inner {\n transition: none;\n}\n.vueperslides__track--no-animation .vueperslides__track-inner {\n transition-duration: 0s;\n}\n.vueperslides__arrow {\n position: absolute;\n fill: currentColor;\n width: 1em;\n text-align: center;\n transform: translateY(-50%);\n transition: 0.3s ease-in-out;\n cursor: pointer;\n user-select: none;\n outline: none;\n z-index: 2;\n}\n.vueperslides__paused {\n position: absolute;\n transition: 0.3s ease-in-out;\n}\n.vueperslides__bullets {\n display: flex;\n justify-content: center;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.vueperslides__bullets--outside {\n position: relative;\n}\n.vueperslides__bullet {\n cursor: pointer;\n user-select: none;\n outline: none;\n z-index: 2;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.vueperslides__bullet::-moz-focus-inner {\n border: 0;\n}\n\n/*# sourceMappingURL=VueperSlides.vue.map */", map: { "version": 3, "sources": ["/Users/anto/Programming/localhost/vueper-slides/src/components/VueperSlides.vue", "VueperSlides.vue"], "names": [], "mappings": ";AAo0BA;EACA,mBAAA;CAqHA;AAnHA;;;IAIA,gBAAA;CACA;AALA;IAQA,6BAAA;CACA;AAGA;IACA,mBAAA;IACA,kBAAA;CACA;AAEA;IACA,mBAAA;IACA,iBAAA;CACA;AAEA;IACA,mBAAA;IACA,OAAA;IACA,aAAA;IACA,QAAA;IACA,SAAA;IACA,iBAAA;IACA,WAAA;CAiBA;AAfA;MACA,aAAA;MACA,yBAAA;CACA;AAEA;MACA,kBAAA;MACA,qBAAA;MACA,aAAA;CAMA;AATA;QAMA,yBAAA;QACA,iBAAA;CACA;AAIA;IACA,oBAAA;IACA,uCAAA;IACA,aAAA;CAkBA;AAhBA;MACA,oBAAA;MACA,iBAAA;CACA;AAEA;MACA,kDAAA;CACA;AAEA;MACA,iBAAA;CACA;AAEA;MACA,wBAAA;CACA;AAGA;IACA,mBAAA;IACA,mBAAA;IACA,WAAA;IACA,mBAAA;IACA,4BAAA;IACA,6BAAA;IACA,gBAAA;IACA,kBAAA;IACA,cAAA;IACA,WAAA;CACA;AAEA;IACA,mBAAA;IACA,6BAAA;CACA;AAEA;IACA,cAAA;IACA,wBAAA;IACA,mBAAA;IACA,UAAA;IACA,QAAA;IACA,SAAA;CAKA;AAHA;MACA,mBAAA;CACA;AAGA;IACA,gBAAA;IACA,kBAAA;IACA,cAAA;IACA,WAAA;IACA,cAAA;IACA,wBAAA;IACA,oBAAA;CAKA;AAZA;MAUA,UAAA;CACA;;ACz2BA,4CAA4C", "file": "VueperSlides.vue", "sourcesContent": [null, ".vueperslides {\n position: relative; }\n .vueperslides--fixed-height .vueperslides__inner,\n .vueperslides--fixed-height .vueperslides__parallax-wrapper,\n .vueperslides--fixed-height .vueperslide {\n height: inherit; }\n .vueperslides--fixed-height .vueperslides__parallax-wrapper {\n padding-bottom: 0 !important; }\n .vueperslides__inner {\n position: relative;\n user-select: none; }\n .vueperslides__parallax-wrapper {\n position: relative;\n overflow: hidden; }\n .vueperslides__track {\n position: absolute;\n top: 0;\n height: 100%;\n left: 0;\n right: 0;\n overflow: hidden;\n z-index: 1; }\n .vueperslides--parallax .vueperslides__track {\n height: 200%;\n transform: translateY(0); }\n .vueperslides--touchable .vueperslides__track {\n cursor: ew-resize;\n cursor: -webkit-grab;\n cursor: grab; }\n .vueperslides--touchable .vueperslides__track--mousedown, .vueperslides--touchable .vueperslides__track--dragging {\n cursor: -webkit-grabbing;\n cursor: grabbing; }\n .vueperslides__track-inner {\n white-space: nowrap;\n transition: 0.5s ease-in-out transform;\n height: 100%; }\n .vueperslides--fade .vueperslides__track-inner {\n white-space: normal;\n transition: none; }\n .vueperslides__track--mousedown .vueperslides__track-inner {\n transition: 0.2s ease-in-out transform !important; }\n .vueperslides__track--dragging .vueperslides__track-inner {\n transition: none; }\n .vueperslides__track--no-animation .vueperslides__track-inner {\n transition-duration: 0s; }\n .vueperslides__arrow {\n position: absolute;\n fill: currentColor;\n width: 1em;\n text-align: center;\n transform: translateY(-50%);\n transition: 0.3s ease-in-out;\n cursor: pointer;\n user-select: none;\n outline: none;\n z-index: 2; }\n .vueperslides__paused {\n position: absolute;\n transition: 0.3s ease-in-out; }\n .vueperslides__bullets {\n display: flex;\n justify-content: center;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0; }\n .vueperslides__bullets--outside {\n position: relative; }\n .vueperslides__bullet {\n cursor: pointer;\n user-select: none;\n outline: none;\n z-index: 2;\n display: flex;\n justify-content: center;\n align-items: center; }\n .vueperslides__bullet::-moz-focus-inner {\n border: 0; }\n\n/*# sourceMappingURL=VueperSlides.vue.map */"] }, media: undefined }); |
| 1295 | + inject("data-v-0c9dd9df_0", { source: "\n.vueperslides {\n position: relative;\n}\n.vueperslides--fixed-height .vueperslides__inner,\n .vueperslides--fixed-height .vueperslides__parallax-wrapper,\n .vueperslides--fixed-height .vueperslide {\n height: inherit;\n}\n.vueperslides--fixed-height .vueperslides__parallax-wrapper {\n padding-bottom: 0 !important;\n}\n.vueperslides__inner {\n position: relative;\n user-select: none;\n}\n.vueperslides__parallax-wrapper {\n position: relative;\n overflow: hidden;\n}\n.vueperslides__track {\n position: absolute;\n top: 0;\n height: 100%;\n left: 0;\n right: 0;\n overflow: hidden;\n z-index: 1;\n}\n.vueperslides--parallax .vueperslides__track {\n height: 200%;\n transform: translateY(0);\n}\n.vueperslides--touchable .vueperslides__track {\n cursor: ew-resize;\n cursor: -webkit-grab;\n cursor: grab;\n}\n.vueperslides--touchable .vueperslides__track--mousedown, .vueperslides--touchable .vueperslides__track--dragging {\n cursor: -webkit-grabbing;\n cursor: grabbing;\n}\n.vueperslides__track-inner {\n white-space: nowrap;\n transition: 0.5s ease-in-out transform;\n height: 100%;\n}\n.vueperslides--fade .vueperslides__track-inner {\n white-space: normal;\n transition: none;\n}\n.vueperslides__track--mousedown .vueperslides__track-inner {\n transition: 0.2s ease-in-out transform !important;\n}\n.vueperslides__track--dragging .vueperslides__track-inner {\n transition: none;\n}\n.vueperslides__track--no-animation .vueperslides__track-inner {\n transition-duration: 0s;\n}\n.vueperslides__arrow {\n position: absolute;\n fill: currentColor;\n width: 1em;\n text-align: center;\n transform: translateY(-50%);\n transition: 0.3s ease-in-out;\n cursor: pointer;\n user-select: none;\n outline: none;\n z-index: 2;\n}\n.vueperslides__paused {\n position: absolute;\n transition: 0.3s ease-in-out;\n}\n.vueperslides__bullets {\n display: flex;\n justify-content: center;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.vueperslides__bullets--outside {\n position: relative;\n}\n.vueperslides__bullet {\n cursor: pointer;\n user-select: none;\n outline: none;\n z-index: 2;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.vueperslides__bullet::-moz-focus-inner {\n border: 0;\n}\n\n/*# sourceMappingURL=VueperSlides.vue.map */", map: { "version": 3, "sources": ["/Users/anto/Programming/localhost/vueper-slides/src/components/VueperSlides.vue", "VueperSlides.vue"], "names": [], "mappings": ";AAi0BA;EACA,mBAAA;CAqHA;AAnHA;;;IAIA,gBAAA;CACA;AALA;IAQA,6BAAA;CACA;AAGA;IACA,mBAAA;IACA,kBAAA;CACA;AAEA;IACA,mBAAA;IACA,iBAAA;CACA;AAEA;IACA,mBAAA;IACA,OAAA;IACA,aAAA;IACA,QAAA;IACA,SAAA;IACA,iBAAA;IACA,WAAA;CAiBA;AAfA;MACA,aAAA;MACA,yBAAA;CACA;AAEA;MACA,kBAAA;MACA,qBAAA;MACA,aAAA;CAMA;AATA;QAMA,yBAAA;QACA,iBAAA;CACA;AAIA;IACA,oBAAA;IACA,uCAAA;IACA,aAAA;CAkBA;AAhBA;MACA,oBAAA;MACA,iBAAA;CACA;AAEA;MACA,kDAAA;CACA;AAEA;MACA,iBAAA;CACA;AAEA;MACA,wBAAA;CACA;AAGA;IACA,mBAAA;IACA,mBAAA;IACA,WAAA;IACA,mBAAA;IACA,4BAAA;IACA,6BAAA;IACA,gBAAA;IACA,kBAAA;IACA,cAAA;IACA,WAAA;CACA;AAEA;IACA,mBAAA;IACA,6BAAA;CACA;AAEA;IACA,cAAA;IACA,wBAAA;IACA,mBAAA;IACA,UAAA;IACA,QAAA;IACA,SAAA;CAKA;AAHA;MACA,mBAAA;CACA;AAGA;IACA,gBAAA;IACA,kBAAA;IACA,cAAA;IACA,WAAA;IACA,cAAA;IACA,wBAAA;IACA,oBAAA;CAKA;AAZA;MAUA,UAAA;CACA;;ACt2BA,4CAA4C", "file": "VueperSlides.vue", "sourcesContent": [null, ".vueperslides {\n position: relative; }\n .vueperslides--fixed-height .vueperslides__inner,\n .vueperslides--fixed-height .vueperslides__parallax-wrapper,\n .vueperslides--fixed-height .vueperslide {\n height: inherit; }\n .vueperslides--fixed-height .vueperslides__parallax-wrapper {\n padding-bottom: 0 !important; }\n .vueperslides__inner {\n position: relative;\n user-select: none; }\n .vueperslides__parallax-wrapper {\n position: relative;\n overflow: hidden; }\n .vueperslides__track {\n position: absolute;\n top: 0;\n height: 100%;\n left: 0;\n right: 0;\n overflow: hidden;\n z-index: 1; }\n .vueperslides--parallax .vueperslides__track {\n height: 200%;\n transform: translateY(0); }\n .vueperslides--touchable .vueperslides__track {\n cursor: ew-resize;\n cursor: -webkit-grab;\n cursor: grab; }\n .vueperslides--touchable .vueperslides__track--mousedown, .vueperslides--touchable .vueperslides__track--dragging {\n cursor: -webkit-grabbing;\n cursor: grabbing; }\n .vueperslides__track-inner {\n white-space: nowrap;\n transition: 0.5s ease-in-out transform;\n height: 100%; }\n .vueperslides--fade .vueperslides__track-inner {\n white-space: normal;\n transition: none; }\n .vueperslides__track--mousedown .vueperslides__track-inner {\n transition: 0.2s ease-in-out transform !important; }\n .vueperslides__track--dragging .vueperslides__track-inner {\n transition: none; }\n .vueperslides__track--no-animation .vueperslides__track-inner {\n transition-duration: 0s; }\n .vueperslides__arrow {\n position: absolute;\n fill: currentColor;\n width: 1em;\n text-align: center;\n transform: translateY(-50%);\n transition: 0.3s ease-in-out;\n cursor: pointer;\n user-select: none;\n outline: none;\n z-index: 2; }\n .vueperslides__paused {\n position: absolute;\n transition: 0.3s ease-in-out; }\n .vueperslides__bullets {\n display: flex;\n justify-content: center;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0; }\n .vueperslides__bullets--outside {\n position: relative; }\n .vueperslides__bullet {\n cursor: pointer;\n user-select: none;\n outline: none;\n z-index: 2;\n display: flex;\n justify-content: center;\n align-items: center; }\n .vueperslides__bullet::-moz-focus-inner {\n border: 0; }\n\n/*# sourceMappingURL=VueperSlides.vue.map */"] }, media: undefined }); |
1300 | 1296 | }; |
1301 | 1297 | /* scoped */ |
1302 | 1298 | var __vue_scope_id__$1 = undefined; |
|
0 commit comments