瀏覽代碼

Bug Fix: Keep searching the closest index if the min distance is same with the previous target's.

NaotoshiFujita 3 年之前
父節點
當前提交
5c131c1c77

+ 1 - 1
dist/js/splide-renderer.min.js

@@ -1,6 +1,6 @@
 /*!
 /*!
  * Splide.js
  * Splide.js
- * Version  : 3.0.5
+ * Version  : 3.0.6
  * License  : MIT
  * License  : MIT
  * Copyright: 2021 Naotoshi Fujita
  * Copyright: 2021 Naotoshi Fujita
  */
  */

+ 3 - 3
dist/js/splide.cjs.js

@@ -1,6 +1,6 @@
 /*!
 /*!
  * Splide.js
  * Splide.js
- * Version  : 3.0.5
+ * Version  : 3.0.6
  * License  : MIT
  * License  : MIT
  * Copyright: 2021 Naotoshi Fujita
  * Copyright: 2021 Naotoshi Fujita
  */
  */
@@ -1254,7 +1254,7 @@ function Move(Splide2, Components2, options) {
     for (let i = 0; i < Slides.length; i++) {
     for (let i = 0; i < Slides.length; i++) {
       const slideIndex = Slides[i].index;
       const slideIndex = Slides[i].index;
       const distance = abs(toPosition(slideIndex, true) - position);
       const distance = abs(toPosition(slideIndex, true) - position);
-      if (distance < minDistance) {
+      if (distance <= minDistance) {
         minDistance = distance;
         minDistance = distance;
         index = slideIndex;
         index = slideIndex;
       } else {
       } else {
@@ -1792,7 +1792,7 @@ function Drag(Splide2, Components2, options) {
         emit(EVENT_DRAGGING);
         emit(EVENT_DRAGGING);
         prevent(e);
         prevent(e);
       } else {
       } else {
-        const threshold = options.dragMinThreshold || 5;
+        const threshold = options.dragMinThreshold || 10;
         isDragging = !isTouchEvent(e) || abs(coordOf(e) - coordOf(baseEvent)) > threshold;
         isDragging = !isTouchEvent(e) || abs(coordOf(e) - coordOf(baseEvent)) > threshold;
         if (isSliderDirection()) {
         if (isSliderDirection()) {
           prevent(e);
           prevent(e);

+ 3 - 3
dist/js/splide.esm.js

@@ -1,6 +1,6 @@
 /*!
 /*!
  * Splide.js
  * Splide.js
- * Version  : 3.0.5
+ * Version  : 3.0.6
  * License  : MIT
  * License  : MIT
  * Copyright: 2021 Naotoshi Fujita
  * Copyright: 2021 Naotoshi Fujita
  */
  */
@@ -1250,7 +1250,7 @@ function Move(Splide2, Components2, options) {
     for (let i = 0; i < Slides.length; i++) {
     for (let i = 0; i < Slides.length; i++) {
       const slideIndex = Slides[i].index;
       const slideIndex = Slides[i].index;
       const distance = abs(toPosition(slideIndex, true) - position);
       const distance = abs(toPosition(slideIndex, true) - position);
-      if (distance < minDistance) {
+      if (distance <= minDistance) {
         minDistance = distance;
         minDistance = distance;
         index = slideIndex;
         index = slideIndex;
       } else {
       } else {
@@ -1788,7 +1788,7 @@ function Drag(Splide2, Components2, options) {
         emit(EVENT_DRAGGING);
         emit(EVENT_DRAGGING);
         prevent(e);
         prevent(e);
       } else {
       } else {
-        const threshold = options.dragMinThreshold || 5;
+        const threshold = options.dragMinThreshold || 10;
         isDragging = !isTouchEvent(e) || abs(coordOf(e) - coordOf(baseEvent)) > threshold;
         isDragging = !isTouchEvent(e) || abs(coordOf(e) - coordOf(baseEvent)) > threshold;
         if (isSliderDirection()) {
         if (isSliderDirection()) {
           prevent(e);
           prevent(e);

+ 3 - 3
dist/js/splide.js

@@ -4,7 +4,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
 
 
 /*!
 /*!
  * Splide.js
  * Splide.js
- * Version  : 3.0.5
+ * Version  : 3.0.6
  * License  : MIT
  * License  : MIT
  * Copyright: 2021 Naotoshi Fujita
  * Copyright: 2021 Naotoshi Fujita
  */
  */
@@ -1490,7 +1490,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
         var slideIndex = Slides[i].index;
         var slideIndex = Slides[i].index;
         var distance = abs(toPosition(slideIndex, true) - position);
         var distance = abs(toPosition(slideIndex, true) - position);
 
 
-        if (distance < minDistance) {
+        if (distance <= minDistance) {
           minDistance = distance;
           minDistance = distance;
           index = slideIndex;
           index = slideIndex;
         } else {
         } else {
@@ -2163,7 +2163,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
           emit(EVENT_DRAGGING);
           emit(EVENT_DRAGGING);
           prevent(e);
           prevent(e);
         } else {
         } else {
-          var threshold = options.dragMinThreshold || 5;
+          var threshold = options.dragMinThreshold || 10;
           isDragging = !isTouchEvent(e) || abs(coordOf(e) - coordOf(baseEvent)) > threshold;
           isDragging = !isTouchEvent(e) || abs(coordOf(e) - coordOf(baseEvent)) > threshold;
 
 
           if (isSliderDirection()) {
           if (isSliderDirection()) {

文件差異過大導致無法顯示
+ 0 - 0
dist/js/splide.js.map


文件差異過大導致無法顯示
+ 1 - 1
dist/js/splide.min.js


二進制
dist/js/splide.min.js.gz


+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "@splidejs/splide",
   "name": "@splidejs/splide",
-  "version": "3.0.5",
+  "version": "3.0.6",
   "description": "Splide is a lightweight, flexible and accessible slider/carousel. No dependencies, no Lighthouse errors.",
   "description": "Splide is a lightweight, flexible and accessible slider/carousel. No dependencies, no Lighthouse errors.",
   "author": "Naotoshi Fujita",
   "author": "Naotoshi Fujita",
   "license": "MIT",
   "license": "MIT",

+ 1 - 1
src/js/components/Drag/Drag.ts

@@ -164,7 +164,7 @@ export function Drag( Splide: Splide, Components: Components, options: Options )
         emit( EVENT_DRAGGING );
         emit( EVENT_DRAGGING );
         prevent( e );
         prevent( e );
       } else {
       } else {
-        const threshold = options.dragMinThreshold || 5;
+        const threshold = options.dragMinThreshold || 10;
         isDragging = ! isTouchEvent( e ) || abs( coordOf( e ) - coordOf( baseEvent ) ) > threshold;
         isDragging = ! isTouchEvent( e ) || abs( coordOf( e ) - coordOf( baseEvent ) ) > threshold;
 
 
         if ( isSliderDirection() ) {
         if ( isSliderDirection() ) {

+ 1 - 1
src/js/components/Move/Move.ts

@@ -181,7 +181,7 @@ export function Move( Splide: Splide, Components: Components, options: Options )
       const slideIndex = Slides[ i ].index;
       const slideIndex = Slides[ i ].index;
       const distance   = abs( toPosition( slideIndex, true ) - position );
       const distance   = abs( toPosition( slideIndex, true ) - position );
 
 
-      if ( distance < minDistance ) {
+      if ( distance <= minDistance ) {
         minDistance = distance;
         minDistance = distance;
         index       = slideIndex;
         index       = slideIndex;
       } else {
       } else {

+ 4 - 4
src/js/components/Move/test/general.test.ts

@@ -64,11 +64,11 @@ describe( 'Move', () => {
     const { Move } = splide.Components;
     const { Move } = splide.Components;
 
 
     expect( Move.toIndex( 0 ) ).toBe( 0 );
     expect( Move.toIndex( 0 ) ).toBe( 0 );
-    expect( Move.toIndex( -100 ) ).toBe( 0 );
-    expect( Move.toIndex( -101 ) ).toBe( 1 );
+    expect( Move.toIndex( -99 ) ).toBe( 0 );
+    expect( Move.toIndex( -100 ) ).toBe( 1 );
     expect( Move.toIndex( -200 ) ).toBe( 1 );
     expect( Move.toIndex( -200 ) ).toBe( 1 );
-    expect( Move.toIndex( -300 ) ).toBe( 1 );
-    expect( Move.toIndex( -301 ) ).toBe( 2 );
+    expect( Move.toIndex( -299 ) ).toBe( 1 );
+    expect( Move.toIndex( -300 ) ).toBe( 2 );
 
 
     splide.destroy();
     splide.destroy();
   } );
   } );

部分文件因文件數量過多而無法顯示