Просмотр исходного кода

Bug Fix: The track position was wrong in RTL mode.

NaotoshiFujita 4 лет назад
Родитель
Сommit
cef2c7711b

+ 1 - 1
dist/css/splide-core.min.css

@@ -1 +1 @@
-@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__container{position:relative;box-sizing:border-box}.splide__list{margin:0!important;padding:0!important;width:-webkit-max-content;width:max-content;will-change:trasform}.splide.is-active .splide__list{display:flex}.splide__pagination{display:inline-flex;align-items:center;width:95%;flex-wrap:wrap;justify-content:center;margin:0}.splide__pagination li{list-style-type:none;display:inline-block;line-height:1;margin:0}.splide{visibility:hidden}.splide,.splide__slide{position:relative;outline:none}.splide__slide{box-sizing:border-box;list-style-type:none!important;margin:0;flex-shrink:0}.splide__slide img{vertical-align:bottom}.splide__slider{position:relative}.splide__spinner{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;display:inline-block;width:20px;height:20px;border-radius:50%;border:2px solid #999;border-left-color:transparent;animation:splide-loading 1s linear infinite}.splide__track{position:relative;z-index:0;overflow:hidden}.splide--draggable>.splide__track>.splide__list>.splide__slide{-webkit-user-select:none;user-select:none}.splide--fade>.splide__track>.splide__list{display:block}.splide--fade>.splide__track>.splide__list>.splide__slide{position:absolute;top:0;left:0;z-index:0;opacity:0}.splide--fade>.splide__track>.splide__list>.splide__slide.is-active{position:relative;z-index:1;opacity:1}.splide--rtl{direction:rtl}.splide--ttb>.splide__track>.splide__list{display:block}.splide--ttb>.splide__pagination{width:auto}
+@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__container{position:relative;box-sizing:border-box}.splide__list{margin:0!important;padding:0!important;width:-webkit-max-content;width:max-content;will-change:transform}.splide.is-active .splide__list{display:flex}.splide__pagination{display:inline-flex;align-items:center;width:95%;flex-wrap:wrap;justify-content:center;margin:0}.splide__pagination li{list-style-type:none;display:inline-block;line-height:1;margin:0}.splide{visibility:hidden}.splide,.splide__slide{position:relative;outline:none}.splide__slide{box-sizing:border-box;list-style-type:none!important;margin:0;flex-shrink:0}.splide__slide img{vertical-align:bottom}.splide__slider{position:relative}.splide__spinner{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;display:inline-block;width:20px;height:20px;border-radius:50%;border:2px solid #999;border-left-color:transparent;animation:splide-loading 1s linear infinite}.splide__track{position:relative;z-index:0;overflow:hidden}.splide--draggable>.splide__track>.splide__list>.splide__slide{-webkit-user-select:none;user-select:none}.splide--fade>.splide__track>.splide__list{display:block}.splide--fade>.splide__track>.splide__list>.splide__slide{position:absolute;top:0;left:0;z-index:0;opacity:0}.splide--fade>.splide__track>.splide__list>.splide__slide.is-active{position:relative;z-index:1;opacity:1}.splide--rtl{direction:rtl}.splide--ttb>.splide__track>.splide__list{display:block}.splide--ttb>.splide__pagination{width:auto}

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/css/splide.min.css


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/css/themes/splide-default.min.css


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/css/themes/splide-sea-green.min.css


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
dist/css/themes/splide-skyblue.min.css


+ 11 - 4
dist/js/splide.esm.js

@@ -1,6 +1,6 @@
 /*!
  * Splide.js
- * Version  : 2.4.10
+ * Version  : 2.4.11
  * License  : MIT
  * Copyright: 2020 Naotoshi Fujita
  */
@@ -2839,6 +2839,13 @@ var abs = Math.abs;
    */
 
   var isFade = Splide.is(FADE);
+  /**
+   * Whether the slider direction is RTL or not.
+   *
+   * @type {boolean}
+   */
+
+  var isRTL = Splide.options.direction === RTL;
   /**
    * This will be true while transitioning from the last index to the first one.
    *
@@ -2852,7 +2859,7 @@ var abs = Math.abs;
    * @type {number}
    */
 
-  var sign = Splide.options.direction === RTL ? 1 : -1;
+  var sign = isRTL ? 1 : -1;
   /**
    * Track component object.
    *
@@ -3071,8 +3078,8 @@ var abs = Math.abs;
      * @return {number} - Current position.
      */
     get position() {
-      var prop = isVertical ? 'top' : 'left';
-      return getRect(list)[prop] - getRect(Elements.track)[prop] - Layout.padding[prop];
+      var prop = isVertical ? 'top' : isRTL ? 'right' : 'left';
+      return getRect(list)[prop] - (getRect(Elements.track)[prop] - Layout.padding[prop] * sign);
     }
 
   };

+ 11 - 4
dist/js/splide.js

@@ -1,6 +1,6 @@
 /*!
  * Splide.js
- * Version  : 2.4.10
+ * Version  : 2.4.11
  * License  : MIT
  * Copyright: 2020 Naotoshi Fujita
  */
@@ -2829,6 +2829,13 @@ var abs = Math.abs;
    */
 
   var isFade = Splide.is(FADE);
+  /**
+   * Whether the slider direction is RTL or not.
+   *
+   * @type {boolean}
+   */
+
+  var isRTL = Splide.options.direction === RTL;
   /**
    * This will be true while transitioning from the last index to the first one.
    *
@@ -2842,7 +2849,7 @@ var abs = Math.abs;
    * @type {number}
    */
 
-  var sign = Splide.options.direction === RTL ? 1 : -1;
+  var sign = isRTL ? 1 : -1;
   /**
    * Track component object.
    *
@@ -3061,8 +3068,8 @@ var abs = Math.abs;
      * @return {number} - Current position.
      */
     get position() {
-      var prop = isVertical ? 'top' : 'left';
-      return getRect(list)[prop] - getRect(Elements.track)[prop] - Layout.padding[prop];
+      var prop = isVertical ? 'top' : isRTL ? 'right' : 'left';
+      return getRect(list)[prop] - (getRect(Elements.track)[prop] - Layout.padding[prop] * sign);
     }
 
   };

Разница между файлами не показана из-за своего большого размера
+ 1 - 1
dist/js/splide.min.js


BIN
dist/js/splide.min.js.gz


+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "@splidejs/splide",
-  "version": "2.4.10",
+  "version": "2.4.11",
   "description": "Splide is a lightweight and powerful slider without any dependencies.",
   "author": "Naotoshi Fujita",
   "license": "MIT",

+ 10 - 3
src/js/components/track/index.js

@@ -58,6 +58,13 @@ export default ( Splide, Components ) => {
 	 */
 	const isFade = Splide.is( FADE );
 
+	/**
+	 * Whether the slider direction is RTL or not.
+	 *
+	 * @type {boolean}
+	 */
+	const isRTL = Splide.options.direction === RTL;
+
 	/**
 	 * This will be true while transitioning from the last index to the first one.
 	 *
@@ -70,7 +77,7 @@ export default ( Splide, Components ) => {
 	 *
 	 * @type {number}
 	 */
-	const sign = Splide.options.direction === RTL ? 1 : -1;
+	const sign = isRTL ? 1 : -1;
 
 	/**
 	 * Track component object.
@@ -283,8 +290,8 @@ export default ( Splide, Components ) => {
 		 * @return {number} - Current position.
 		 */
 		get position() {
-			const prop = isVertical ? 'top' : 'left';
-			return getRect( list )[ prop ] - getRect( Elements.track )[ prop ] - Layout.padding[ prop ];
+			const prop = isVertical ? 'top' : isRTL ? 'right' : 'left';
+			return getRect( list )[ prop ] - ( getRect( Elements.track )[ prop ] - Layout.padding[ prop ] * sign );
 		},
 	};
 

Некоторые файлы не были показаны из-за большого количества измененных файлов