]> _ Git - fluidbook-toolbox.git/commitdiff
wip #7785 @3:30
authorsoufiane <soufiane@cubedesigners.com>
Tue, 14 Oct 2025 14:30:59 +0000 (16:30 +0200)
committersoufiane <soufiane@cubedesigners.com>
Tue, 14 Oct 2025 14:30:59 +0000 (16:30 +0200)
resources/linkeditor/js/linkeditor.previewLinks.js
resources/linkeditor/style/inc/_links.sass

index 4b579ab82143b23e6324da5db749fbea09c97581..a908c568d0631dd9978283f10c4102c88ee0536d 100644 (file)
@@ -67,26 +67,34 @@ LinkeditorPreviewLinks.prototype = {
             $("[data-id-preview=" + $this.linkData.uid + "]").css("transform","rotate("+$this.linkData.rot+"deg)")
         }
 
-        const clipLimit = $("#linkeditor-fluidbook")[0].getBoundingClientRect()
         const z = this.linkeditor.zoom.normalizeZoom(this.linkeditor.zoom.getZoom())
 
         // Cropper les bords pour éviter que les animations de type scale etc... ne fassent sortir le calque
         // du fb afin d'obtenir un rendu plus proche du rendu final
         if(type !== '39') {
-            const { right, bottom } = $("#linkeditor-layer-links")[0].getBoundingClientRect()
+            const { right, bottom, top } = $("#linkeditor-fluidbook")[0].getBoundingClientRect()
 
-            const wLink = $(".link[fb-uid="+$this.linkData.uid+"]")[0].getBoundingClientRect().width
-            const hLink = $(".link[fb-uid="+$this.linkData.uid+"]")[0].getBoundingClientRect().height
-            const rLink = $(".link[fb-uid="+$this.linkData.uid+"]")[0].getBoundingClientRect().right
-            const bLink = $(".link[fb-uid="+$this.linkData.uid+"]")[0].getBoundingClientRect().bottom
+            const {width: wLink, height: hLink, right: rLink, bottom: bLink, left: lLink, top: tLink} = $(".link[fb-uid="+$this.linkData.uid+"]")[0].getBoundingClientRect()
 
-            const limitX = wLink + (right - rLink)
-            const limitY = hLink + (bottom - bLink)
+            let limitRight = wLink + (right - rLink)
+            const limitBottom = hLink + (bottom - bLink)
 
-            const x = -$this.linkData.left
-            const y = -$this.linkData.top
+            // Pour la première page si c'est un fb à double page
+            const { left: pageRightDimensionX} = $("#linkeditor-page-right")[0].getBoundingClientRect()
+            const { left: pageLeftDimensionX, right: pageLeftDimensionXRight} = $("#linkeditor-page-left")[0].getBoundingClientRect()
+            let limitLeft = pageLeftDimensionX - lLink
+            if($("#linkeditor").hasClass("double") && this.linkeditor.currentPage === 0) {
+                limitLeft = pageRightDimensionX - lLink
+            }
+
+            // Pour la dernière page on modifie la limite à droite
+            if($("#linkeditor").hasClass("double") && this.linkeditor.currentPage === FLUIDBOOK_DATA.settings.pages) {
+                limitRight = wLink + (pageLeftDimensionXRight - rLink)
+            }
+
+            const limitTop = top - tLink
 
-            $(".link[fb-uid="+$this.linkData.uid+"]").css('clip-path',`polygon(${x}px ${y}px, ${limitX}px ${y}px, ${limitX}px ${limitY}px, ${x}px ${limitY}px)`)
+            $(".link[fb-uid="+$this.linkData.uid+"]").css('clip-path',`polygon(${limitLeft}px ${limitTop}px, ${limitRight}px ${limitTop}px, ${limitRight}px ${limitBottom}px, ${limitLeft}px ${limitBottom}px)`)
         }
 
         /*$("#linkeditor-editor").css({
index c2c17c91139c57da5b20fadcbacc8a62d0fd746a..72d8a961fb792179fd889c970203e732aba5e817 100644 (file)
@@ -109,10 +109,6 @@ body:not(.preview)
             height: 100%
             position: absolute
 
-        &:not([fb-type='35'])
-            [data-id-preview-wrap]
-                overflow: hidden
-
         &[fb-type='14'] [data-id-preview]
             mix-blend-mode: normal
             position: absolute