From: Vincent Vanwaelscappel Date: Wed, 12 Feb 2025 18:11:55 +0000 (+0100) Subject: wip #7241 @3 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=12dfd5b0a4a077348237f08aad1f58e7432478c5;p=fluidbook-html5.git wip #7241 @3 --- diff --git a/js/libs/fluidbook/fluidbook.links.js b/js/libs/fluidbook/fluidbook.links.js index 3af9114b..745b240c 100644 --- a/js/libs/fluidbook/fluidbook.links.js +++ b/js/libs/fluidbook/fluidbook.links.js @@ -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(); },