]> _ Git - fluidbook-html5.git/commitdiff
wip #3869 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 7 Sep 2020 17:53:04 +0000 (19:53 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 7 Sep 2020 17:53:04 +0000 (19:53 +0200)
js/libs/fluidbook/fluidbook.pagetransitions.js
style/fluidbook.less

index ff34fc0c4285e1f64d0389a0ea93835d37320fa7..ed40c2c9175dba30a07b07ecee61657c21d054f9 100644 (file)
@@ -26,7 +26,7 @@ FluidbookPageTransition.prototype = {
 
     getTransitionDuration: function (pageNr) {
         var type = this.getTransitionType(pageNr);
-        var f= 0;
+        var f = 0;
         if (type === 'immediate') {
             return 0;
         } else if (type === 'flip3d') {
@@ -45,6 +45,13 @@ FluidbookPageTransition.prototype = {
                 return "immediate";
             }
         }
+        if (this.fluidbook.settings.mobileTransitions === 'fade') {
+            if (this.fluidbook.displayOnePage) {
+                return 'fadeone';
+            } else {
+                return 'fade';
+            }
+        }
         if (!this.fluidbook.support.transitions2d ||
             this.fluidbook.settings.mobileTransitions === 'none') {
             return 'immediate';
@@ -72,7 +79,7 @@ FluidbookPageTransition.prototype = {
 
     },
 
-    pageTransition: function (pageNr,transitionType) {
+    pageTransition: function (pageNr, transitionType) {
         var $this = this;
         if (this.fluidbook.pad.enabled) {
             this.transitionAxis = this.fluidbook.pad.getTransitionAxis(this.fluidbook.currentPage, page);
@@ -84,7 +91,7 @@ FluidbookPageTransition.prototype = {
 
         this.fluidbook.tooltip.hideTooltip();
         pageNr = this.normalizeTransitionPageNr(pageNr);
-        if(transitionType===undefined) {
+        if (transitionType === undefined) {
             transitionType = this.getTransitionType(pageNr);
         }
 
@@ -94,6 +101,16 @@ FluidbookPageTransition.prototype = {
             return this.pageTransition1D(pageNr);
         }
 
+        if (transitionType === 'fade') {
+            this.fluidbook.zoom.resetZoom();
+            return this.pageTransitionFade(pageNr);
+        }
+
+        if (transitionType === 'fadeone') {
+            this.fluidbook.zoom.resetZoom();
+            return this.pageTransitionFadeOne(pageNr);
+        }
+
         if (transitionType === 'portrait') {
             this.fluidbook.zoom.resetZoom();
             return this.pageTransition2DPortrait(pageNr);
@@ -343,6 +360,39 @@ FluidbookPageTransition.prototype = {
             });
         });
     },
+
+    pageTransitionFadeOne: function (pageNr) {
+        this.transitionning = true;
+        var $this = this;
+        var turning = this.getTurningPages(pageNr);
+        $("#pages").append('<div id="nextDoublePage" aria-hidden="true" class="doublePage _fade ' + turning.nextFromClass + '"></div>');
+        var doublePage = $("#nextDoublePage");
+        if (this.fluidbook.displayOnePage) {
+            this.fluidbook.hidePage('right');
+        }
+
+        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 () {
+                $this.pauseNetworkDuringTransition(pageNr);
+                $this.beforeTransition(pageNr, 2, turning);
+
+                $(doublePage).removeClass(turning.nextFromClass).one($this.fluidbook.support.getTransitionEndEvent(), function () {
+                    if ($this.transitionning === false) {
+                        return;
+                    }
+                    $("#currentDoublePage").remove();
+                    $("#nextDoublePage").attr('id', 'currentDoublePage');
+                    $this.afterTransition(pageNr);
+                })
+            });
+        });
+    },
+
     pageTransition2DPortrait: function (pageNr) {
         this.transitionning = true;
         var $this = this;
@@ -470,7 +520,6 @@ FluidbookPageTransition.prototype = {
         }
 
 
-
         setTimeout(function () {
             $this.transitionning = false;
         }, 10);
index 219406ff9dead8054145c841fdbde823147aeea9..a99fb1071e0a18ecd4eabc1cbead74c6c5648b82 100644 (file)
@@ -2246,11 +2246,23 @@ ul.chapters.shareList a.level0 .svg-icon {
 /*  Transitions */
 
 .doublePage {
-  &._2d, &._3d {
+  &._2d, &._3d, &._fade {
     .page-transition(1);
   }
 }
 
+/* Fade */
+
+.doublePage._fade {
+  &#nextDoublePage {
+    z-index: 7;
+  }
+
+  &.next, &.prev {
+    opacity: 0;
+  }
+}
+
 /* 2D */
 .doublePage._2d.sliding {
   transition: none;