]> _ Git - fluidbook-html5.git/commitdiff
wip #7241 @3
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 12 Feb 2025 18:11:55 +0000 (19:11 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 12 Feb 2025 18:11:55 +0000 (19:11 +0100)
js/libs/fluidbook/fluidbook.links.js

index 3af9114bb63bfafb1158efae2785206ec2f856ac..745b240cf4a5b66cdea76de86e19228cb58803a5 100644 (file)
@@ -852,34 +852,64 @@ FluidbookLinks.prototype = {
 
     __blink: function (el) {
         var _complete = function () {
-            el.removeClass('animating').css('opacity', '');
+            el.removeClass('animating').css('opacity', '').css('width', '');
         }
-
+        let o = 'opacity';
+        let v1 = 1;
+        let v05 = 0.5;
+        let anim = el.data('animation');
         var speed = 0.5;
+        if (anim === 'highlight') {
+            o = 'width';
+            v1 = '100%';
+            v05 = '50%';
+        }
+
+
         var timeline = new TimelineMax();
         var repetitions = this.fluidbook.settings.linkBlinkRepetition - 1;
         el.addClass('animating');
         var d = 0.1;
+        let a = {
+            duration: this.fluidbook.settings.linkBlinkTime * speed, ease: 'none'
+        }
+        a.delay = 0.1;
+        a[o] = v1;
         if (repetitions > 0) {
-            el.css('opacity', 0);
-            timeline.add(gsap.to(el, {
-                duration: this.fluidbook.settings.linkBlinkTime * speed, delay: 0.1, opacity: 1, ease: 'none'
-            }));
+            el.css(o, 0);
+            timeline.add(gsap.to(el, a));
             d = 0;
         } else {
-            el.css('opacity', 1);
+            if (anim === 'highlight') {
+                el.css(o, 0);
+            } else {
+                el.css(o, 1);
+            }
         }
         for (var i = 0; i < repetitions; i++) {
+            a.delay = 0;
+            a[o] = v05;
+            timeline.add(gsap.to(el, a));
+            a[o] = v1;
+            timeline.add(gsap.to(el, a));
+        }
+
+        if (anim === 'fade') {
+            timeline.add(gsap.to(el, {
+                duration: this.fluidbook.settings.linkBlinkTime,
+                delay: d,
+                opacity: 0,
+                ease: 'none',
+                onComplete: _complete
+            }));
+        } else {
             timeline.add(gsap.to(el, {
-                duration: this.fluidbook.settings.linkBlinkTime * speed, opacity: 0.5, ease: 'none'
+                duration: speed*this.fluidbook.settings.linkBlinkTime, delay: d, [o]: v1, ease: 'none'
             }));
             timeline.add(gsap.to(el, {
-                duration: this.fluidbook.settings.linkBlinkTime * speed, opacity: 1, ease: 'none'
+                duration: speed*this.fluidbook.settings.linkBlinkTime, opacity: 0, ease: 'none', onComplete: _complete
             }));
         }
-        timeline.add(gsap.to(el, {
-            duration: this.fluidbook.settings.linkBlinkTime, delay: d, opacity: 0, onComplete: _complete
-        }));
         timeline.play();
     },