]> _ Git - fluidbook-html5.git/commitdiff
wip #7357 @1.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 27 Feb 2025 16:53:27 +0000 (17:53 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 27 Feb 2025 16:53:27 +0000 (17:53 +0100)
js/libs/fluidbook/fluidbook.pagetransitions.js
style/fluidbook.less

index 7de4b709ea7d31c66c1f1139435e1532d8c692ba..5c2273b664d595df882078fff4317ab4bdbb9006 100644 (file)
@@ -53,12 +53,13 @@ FluidbookPageTransition.prototype = {
                 return 'fade';
             }
         }
-        if (this.fluidbook.settings.mobileTransitions === 'fadeoutin' || this.fluidbook.settings.mobileTransitions === 'fadeoutthenin') {
-            return this.fluidbook.settings.mobileTransitions;
-        }
+
         if (!this.fluidbook.support.transitions2d || this.fluidbook.settings.mobileTransitions === 'none') {
             return 'immediate';
         }
+        if (['fadeoutin', 'fadeoutthenin', 'slidefullwidth'].indexOf(this.fluidbook.settings.mobileTransitions) >= 0) {
+            return this.fluidbook.settings.mobileTransitions;
+        }
         if (this.fluidbook.displayOnePage) {
             return 'portrait';
         }
@@ -134,6 +135,11 @@ FluidbookPageTransition.prototype = {
             return this.pageTransition2D(pageNr);
         }
 
+        if (transitionType === 'slidefullwidth') {
+            this.fluidbook.zoom.resetZoom();
+            return this.pageTransitionSlideFullWidth(pageNr);
+        }
+
         if (transitionType === 'flip3d') {
             this.fluidbook.zoom.resetZoom(function () {
                 return $this.pageTransition3DFlip(pageNr);
@@ -378,6 +384,36 @@ FluidbookPageTransition.prototype = {
         });
     },
 
+    pageTransitionSlideFullWidth: function (pageNr) {
+        this.transitionning = true;
+        var $this = this;
+        var turning = this.getTurningPages(pageNr);
+        $("#pages").addClass('overflow');
+        $("#pages").append('<div id="nextDoublePage" aria-hidden="true" class="doublePage _2d _fullwidth axis_' + this.transitionAxis + ' ' + turning.nextFromClass + '"></div>');
+        var doublePage = $("#nextDoublePage");
+        if (!this.fluidbook.loader.arePreloadedPages(turning.end)) {
+            this.fluidbook.displayLoader();
+        }
+        this.pauseNetworkDuringPagesPreload();
+        this.fluidbook.loader.preloadPagesBeforeTransition(turning.end, function () {
+            $this.fluidbook.loader.setContentsInDoublePage(doublePage, turning.end, true, function () {
+                $("#shade").addClass('transition');
+                $this.pauseNetworkDuringTransition(pageNr);
+                $this.beforeTransition(pageNr, 2, turning);
+                $("#currentDoublePage").addClass('_2d').addClass('_fullwidth').addClass('axis_' + $this.transitionAxis).addClass(turning.currentToClass);
+                $(doublePage).removeClass(turning.nextFromClass).one($this.fluidbook.support.getTransitionEndEvent(), function (event) {
+                    if ($this.transitionning === false) {
+                        return;
+                    }
+                    $("#currentDoublePage").remove();
+                    $("#nextDoublePage").attr('id', 'currentDoublePage');
+                    $this.afterTransition(pageNr);
+                    $("#pages").removeClass('overflow');
+                });
+            });
+        });
+    },
+
     pageTransitionFade: function (pageNr) {
         return this.pageTransitionFadeOne(pageNr);
     },
@@ -519,7 +555,9 @@ FluidbookPageTransition.prototype = {
                 });
             });
         });
-    }, pageTransition1D: function (pageNr) {
+    },
+
+    pageTransition1D: function (pageNr) {
         var page = pageNr;
 
         var doublePage = $("#currentDoublePage");
@@ -534,7 +572,9 @@ FluidbookPageTransition.prototype = {
                 $this.afterTransition(page);
             });
         });
-    }, beforeTransition: function (page, transition, turning) {
+    },
+
+    beforeTransition: function (page, transition, turning) {
         if (transition == undefined) {
             transition = 1;
         }
@@ -575,7 +615,9 @@ FluidbookPageTransition.prototype = {
         } catch (err) {
 
         }
-    }, afterTransition: function (page, timeout) {
+    },
+
+    afterTransition: function (page, timeout) {
         if (timeout === undefined) {
             timeout = false;
         }
index 2bed02648ae7ede732ead8fa9cf5e106b0ab0497..d94dd1b77c2296b6c5a49e11f343916bc9cb1045 100644 (file)
@@ -498,6 +498,8 @@ body, html {
   }
 }
 
+
+
 .portrait {
   .doublePage {
     &._2d.axis_x {
@@ -524,6 +526,19 @@ body, html {
   }
 }
 
+// Fullwidth slide
+.doublePage {
+  &._2d._fullwidth.axis_x {
+    &.next {
+      transform: translate3d(100vw, 0, 0);
+    }
+
+    &.prev {
+      transform: translate3d(-100vw, 0, 0);
+    }
+  }
+}
+
 .doublePage._3d {
   left: 50%;
 }
@@ -612,6 +627,11 @@ body, html {
   left: 0px;
   overflow-x: hidden;
   overflow-y: hidden;
+
+  &.overflow {
+    overflow-x: visible;
+    overflow-y: visible;
+  }
 }
 
 #shade {