Tags: jahon/GSAP
Tags
3.2.6 - FIXED: regression in 3.2.5 could cause a delay when toggling the reversed() value of an animation, or if timeScale is altered when the virtual playhead is sufficiently past the start or end of the animation. See https://greensock.com/forums/topic/23384-reversed-timeline-issue/
3.2.5 - IMPROVED: if you accidentally pass a number in to ScrambleTextPlugin as the new text, it'll cast it as a string. - IMPROVED: if you set extendTimeline: true on a gsap.registerEffect(), the timeline instance will be passed as the 3rd parameter to the effect. - IMPROVED: EaselPlugin will do its best to automatically set the cache on the target element according to its nominalBounds. - FIXED: setting the duration() of a Timeline didn't alter the timeScale properly (but it did if you set totalDuration()). See https://greensock.com/forums/topic/23240-timelineduration-question-or-issue/ - FIXED: worked around a Firefox browser bug that interrupted pointermove events on Draggable items when using touch. See https://greensock.com/forums/topic/23248-touch-is-not-working-on-draggable-in-firefox-windows-v324/?tab=comments#comment-109800 - FIXED: setting the delay via the delay() method after creating the animation didn't actually move its startTime. - FIXED: setting an animation's startTime directly via the startTime() method wouldn't always work if the parent timeline had sorting disabled. It also wouldn't re-active the tween if altering the startTime() was done after it completed. - FIXED: (regression) if you set reversed: true on an animation, it would start from the end rather than just keeping the playhead at the start. - FIXED: if you call update() on a Draggable insance WHILE it is being dragged and autoScroll is true, and the element is nested inside a container that's not scrollable, it wouldn't update the position correctly. See https://greensock.com/forums/topic/23289-issue-with-draggableupdate-and-scrollable-elements/ - FIXED: coordinate conversion didn't factor in an element's border (which could affect motion path alignment or convertCoordinates(), getRelativePosition(), or getAlignMatrix() methods of MotionPathPlugin). - CHANGED: previously, if you set timeScale() to exactly 0 and then called play(), it would force the timeScale to 1 but that seemed to confuse some people so now it leaves the timeScale alone. - FIXED: if you called reverse() on an animation that had a timeScale of 0, it wouldn't actually reverse it. - FIXED: An issue in InertiaPlugin could cause the endX/endY not to get set correctly in Draggable. See https://greensock.com/forums/topic/23339-draggable-endx-differences-gsap-23/ - FIXED: if tweenTo()/tweenFrom()/tweenFromTo() was called on a timeline that was reversed (negative timeScale), the duration was calculated incorrectly. - FIXED: converting top/left/right/bottom/width/height percentage-based values on elements in a particular scenario doesn't work (related to what the parent's and child's "position" values are). See https://greensock.com/forums/topic/23351-animation-from-px-to-percentage/ - FIXED: in certain scenarios (somewhat rare), gsap.getProperty() didn't convert to non-px units correctly if the browser reported the current units as non-px.
3.2.4 - FIXED: Regression in 3.2.0 caused onReverseComplete to fire when resuming a paused animation from its very beginning which also caused the .then() Promise to be resolved (prematurely). The onReverseComplete could also be triggered incorrectly when the parent timeline's playhead moves backward to before the child tween starts but it's only supposed to fire when the actual animation itself is reversed (regardless of the parent's orientation). See greensock#368 - FIXED: Draggable didn't set its rotationOrigin initially upon creation (required a press).
3.2.3 - FIXED: a regression in 3.2.2 could cause immediateRender not to get triggered properly in some rare cases. - FIXED: if you set a defaults object on a timeline with immediateRender, it was getting overridden by the function's default value. - IMPROVED: if you don't provide a point to MotionPathPlugin.convertCoordinates(), it'll return a Matrix2D object that you can reuse to convert individual points more cheaply. - IMPROVED: MotionPathPlugin.getRelativePosition() accepts point objects (or Arrays) now for the fromOrigin and toOrigin parameters, making it more flexible. Same for MotionPathPlugin.getAlignMatrix().
3.2.2
- FIXED: [CRITICAL] regression in 3.2.1: if you animate a transform-related value on an SVG element that has no width (according to its getBBox()), it could cause a critical error (gets caught in a loop trying to discern the width).
- FIXED: if you set a timeline to be initially reversed (before adding any child animations), tweens that get added on that same tick won't inherit defaults from the root timeline.
- FIXED: if an anchor element is passed in for a scrollTo, like scrollTo: document.querySelector('[name="anchor"]'), it could be interpreted incorrectly (the browser reports it as being coercible to a number). See greensock#366
- FIXED: A timeline that gets cleared and then has new animations added may not have its timing adjusted properly. See greensock#365
- FIXED: due to some recent browser bugs that cause confusion with reading sourcemap files, we removed the pointers inside the minified files. In other words, // sourceMappingURL=gsap.min.js.map was removed but we're still providing the sourcemap files themselves. You can manually add them in Chrome Dev Tools. We may add the pointer back in future versions once the browser issue is resolved.
3.2.1 - NEW: Added MotionPathPlugin.convertCoordinates() method. - IMPROVED: adjusted some plumbing to make it easier to create an unofficial ClassNamePlugin ;) - FIXED: the "align" feature of MotionPathPlugin wasn't working correctly when the target was a root <svg> element due to browser quirks related to SVG size reporting. A workaround is in place now. See https://greensock.com/forums/topic/23041-motionpath-object-animates-but-not-on-the-actual-path/ - FIXED: if you try to apply a transform-related property to an SVG element that's not in the DOM yet, Firefox would throw an error. See https://greensock.com/forums/topic/23031-issue-with-cssplugin-in-firefox-typeerror-oldparent-is-null/?tab=comments#comment-108878 - FIXED: if you clone an SVG element with transforms and then apply transforms to that clone, they wouldn't line up properly because the origin data wasn't recorded in a data attribute. See https://greensock.com/forums/topic/23031-issue-with-cssplugin-in-firefox-typeerror-oldparent-is-null/?tab=comments#comment-108878 - FIXED: if you set a "start" or "end" on a motion path that lands exactly on top of an anchor point that's directly next in line from the other start/end of the slice, it wouldn't slice it properly. See https://greensock.com/forums/topic/23014-invalid-position/?tab=comments#comment-109009 - FIXED: if you add a callback to the very start of a timeline that had already completed, and it has autoRemoveChildren:true, it may not fire. See https://greensock.com/forums/topic/22659-call-being-skipped-when-timescale-is-very-high/page/3/?tab=comments#comment-109000 - FIXED: if you tried setting/tweening a transform-related value to NaN or undefined, it would allow it in 3.2.0 (regression). See https://greensock.com/forums/topic/23085-nan-values-break-in-gsap320-worked-well-in-311/ - FIXED: if you defined a callback with parameters (like onCompleteParams) INSIDE an advanced stagger object, it wasn't recognized. See https://greensock.com/forums/topic/23086-oncomplete-inside-the-stagger-object-ignores-its-oncompleteparams-and-uses-the-oncompleteparams-of-the-parent-tween/ - FIXED: an error that'd prevent timeline.tweenTo() from working properly (regression). See https://greensock.com/forums/topic/23080-timelinetweento-causes-maximum-stack-errors-v320/ - FIXED: Draggable elements with position: "fixed" that are NOT type: "rotation" wouldn't be positioned correctly after scrolling the page. See https://greensock.com/forums/topic/23088-draggable-fixed-elements-disappear-when-dragging-after-scroll/ - FIXED: if an SVG element had transforms applied OUTSIDE of GSAP, they could be parsed incorrectly. See https://greensock.com/forums/topic/23105-svg-path-animation-issues/
3.2.0 - NEW: MotionPathPlugin recognizes a new "alignOrigin" value that controls the point on the target that gets aligned with the path. Previously it was always the top left corner (of the bounding box). Setting an alignOrigin also automatically sets the transformOrigin to the corresponding place on the target for convenience. alignOrigin is an Array with progress values along the x and y axis, so [0.5, 0.5] would be in the center, [1, 0] would be the top right corner, etc. If you don't want to have the transformOrigin set to match automatically, pass false as the 3rd array element, like [0.5, 0.5, false]. - NEW: MotionPathPlugin.getRelativePosition() method that calculates the x/y distance between two elements based on the coordinate space of the "fromElement", even if both elements are nested inside different containers that have various transforms applied! This makes it simple to move one element to another one no matter how deeply nested they are. - NEW: MotionPathPlugin.getAlignMatrix() method that generates a matrix object (with a, b, c, d, e, and f properties just like an SVGMatrix) for aligning two elements and converting between their coordinate spaces. - NEW: PixiPlugin can do directional rotation now. For example, if you animate to rotation: "-270_short" it will go in the shortest direction. "-270_cw" would always go in the clockwise direction, and "-270_ccw" would go counter-clockwise. - IMPROVED: added one more digit of precision to decimals to accommodate edge cases where that's perceptible. See https://greensock.com/forums/topic/22980-laggy-jerky-animation-pan-zoom-test-v3-vs-v2/ - IMPROVED: frame rate isn't capped at 60fps anymore (though the browser is in charge of deciding how often it'll dispatch requestAnimationFrame). - IMPROVED: sometimes the browser reports a complex CSS value with the color in a different place than what the user provides. For example, the user may try animating a filter to "drop-shadow(0px 0px 10px #f00)" whereas the browser reports the current value as "drop-shadow(rgb(0, 0, 255) 0px 0px 10px)", so the start/end values don't map properly. The algorithm has been improved to sense that condition and move the color in the starting value accordingly. - IMPROVED: worked around several bugs in Safari that cause motionPath animations to fail. See https://greensock.com/forums/topic/18310-clippath-doesnt-work-on-ios/?tab=comments#comment-107261 - IMPROVED: fixed/added various TypeScript definitions - FIXED: timeline.tweenTo() didn't recognize "duration" or "ease" if they were provided in the vars object. See greensock#357 - FIXED: if an object was returned from the onFulfilled callback of animation.then() that wasn't a Promise or a function, it could generate an error. See greensock#351 - FIXED: in very rare cases, a zero-second animation/callback may not perform its final render. See greensock#358 - FIXED: in Draggable, if you startDrag() and pass in an mouse event (instead of a pointer event) even though the browser supports pointer events, the onDragEnd may not be triggered properly. See https://greensock.com/forums/topic/22668-draggable-ondragend-not-firing/ - FIXED: zero-duration animations may not resolve a Promise. See greensock#360 - FIXED: if you tried animating a <g> element with MotionPathPlugin with an "align" specified, it may not align properly. See https://greensock.com/forums/topic/22717-motionpathplugin-alignment-issue/ - FIXED: in a VERY rare scenario a tween may do its final render as if it's ALMOST at the end (but not quite) when the duration is a very long decimal. - FIXED: if there are no active tweens for a while (and thus GSAP goes to "sleep"), unpausing a tween could lead to it triggering a callback at the incorrect time on that very first tick (as if the resuming animation's startTime wasn't adjusted yet). See https://greensock.com/forums/topic/22753-animation-jumping-on-pause-and-resume/ - FIXED: when using the "back.in" ease, autoAlpha may not set the final visibility value properly. See https://greensock.com/forums/topic/22782-gsap-3-autoalpha-not-working-as-expected/ - FIXED: animating an array-based motionPath on the "scale" property resulted in errors being thrown. - FIXED: the Timeline.smoothChildTiming is false by default (it has always said so in the docs, but functionally it was defaulting to true) - FIXED: if you gsap.getProperty() for transformOrigin, there was a space missing before the "z" part. - FIXED: checking the progress() or totalProgress() of the global timeline could result in a value greater than 1. - FIXED: several issues related to edge cases in rendering timelines that were paused mid-render and then later resumed. - FIXED: repeatRefresh on timelines did indeed invalidate() all children, but since they would render again when moving the playhead back to the start, they could all lock in their initial values at that time rather than waiting until the playhead passes their startTimes. - FIXED: if you try to animate the "length" of an object that has that property initially set to 0, it will no longer interpret that as an empty Array-like object of targets. See greensock#362
3.1.1 - FIXED: the "all.js" ES module file contained an invalid export for TweenMax (regression in 3.1.0). See greensock#355 - FIXED: if a zero-duration timeline contained a callback that added more animations to itself (lengthening the timeline's duration), it may prematurely get removed from its parent timeline. - FIXED: if an object is returned when resolving then() that's not a function or Promise, it could generate an error. - FIXED: transformPerspective now renders first in the list of transforms (previously it was AFTER translate/translate3d). This makes things render the way it did in GSAP 2 and earlier. See https://greensock.com/forums/topic/22624-transformorigin-vs-transform-origin-transformperspective/
3.1.0
- NEW: stagger and distribute() recognize a new from: "random" value for randomizing the values. In other words, you can do stagger: {from: "random"}
- NEW: gsap.utils.shuffle() method randomly shuffles the elements in an array (in-place).
- NEW: you can set repeatRefresh: true on timelines now and it'll affect all children (invalidating them on each repeat, not including yoyo's).
- NEW: CSSPlugin can now handle cases where padding, margin, borderWidth, and borderRadius have multiple components, like for each side/corner.
- IMPROVED: previously the repeatRefresh feature got triggered just before each repeat (including yoyo's), but now it skips the yoyo portion because that behavior is much more intuitive.
- IMPROVED: when calling kill() on a Draggable instance, it no longer kills all active tweens of the drag-related properties (typically "x" and "y") - it only kills any inertia-related tweens that were created by that Draggable instance.
- IMPROVED: if the target has a "length" getter/setter, it was treated as an array-like collection of targets (like a jQuery object or a document.querySelectorAll() NodeList) but now you can simply wrap that in an array to have GSAP treat it like a normal target rather than a collection, like gsap.to([target], {...}); See greensock#352
- IMPROVED: CSSPlugin is now protected from tree shaking when you only reference TweenMax in a build tool that uses aggressive tree shaking. See https://greensock.com/forums/topic/21864-gsap-3-css/?tab=comments#comment-106722
- IMPROVED: if a non-function is passed to .then() as the onFulfilled parameter, it will now be ignored.
- FIXED: a regression in 3.0.5 caused the legacy TweenMax.staggerTo/From/FromTo() methods not to work properly (of course we recommend switching to the new, modern API). Example: https://greensock.com/forums/topic/22490-draw-svg/
- FIXED: in some rare cases, a motionPath tween that uses "align" may not be aligned properly if the target has transforms (like scale, rotation, x, y, xPercent, yPercent) applied already. For example, https://greensock.com/forums/topic/22459-remove-transform-in-motionpaths/ and https://greensock.com/forums/topic/21980-gsap-v3-motionpathplugin-scale-throws-the-path-off/
- FIXED: a regression in 3.0.5 could cause a timeline may report as being inactive when it's active (in a rare edge case). See https://greensock.com/forums/topic/21878-gsap3-timeline-changes-isactive/?tab=comments#comment-106200
- FIXED: if an animation is manually removed from a timeline and then its playhead is adjusted, like animation.progress(0.5), it no longer gets added back to its timeline as long as that timeline had autoRemoveChildren set to false (the default). See https://greensock.com/forums/topic/22497-strange-behavior-after-timelineremove-tween/
- FIXED: worked around an issue in Firefox that caused the initial borderRadius to be 0 (because Firefox doesn't report the computed borderRadius style properly).
- FIXED: now you can gsap.getProperty(target, "borderRadius") and it will also convert %-based values properly.
- FIXED: when adding a paused animation to a timeline, its endTime could be miscalculated. See greensock#349
- FIXED: regression in 3.0.5 that could cause odd behavior when tweening the timeScale of another animation
- FIXED: MotionPath array-based tweens of an aliased CSS-related properties like "rotate" (instead of "rotation") wouldn't work. See https://greensock.com/forums/topic/22568-issue-with-rotaterotation-property-inside-of-motionpath/
- FIXED: setting the "transform" of an element directly, like gsap.set(target, {transform:"translateX(50vw)"}) (instead of setting it with the component property like "x") would throw an error. See https://greensock.com/forums/topic/22580-copy-transform-from-another-object/
- FIXED: setting a default immediateRender (either globally or via the parent timeline) didn't affect from() and fromTo() tweens. Now it is inherited properly. See https://greensock.com/forums/topic/22609-set-immediaterender-false-to-main-timeline/
- FIXED: rotateZ is now an alias for rotation (same as rotate and rotationZ) on DOM elements (CSSPlugin).
3.0.5
- NEW: gsap.utils.snap() now allows you to define a snapping radius without using an array of values, like gsap.utils.snap({ increment: 500, radius: 100 }). See https://greensock.com/forums/topic/22297-allow-snap-util-to-use-radius-without-an-array-of-values/
- FIXED: an error could be thrown in IE11 (and earlier) in certain rare cases (like when animating zIndex on a DOM element). See greensock#343
- FIXED: if you place a call() (or zero-duration tween with an onComplete) on a timeline that is also zero-duration, its callback may not fire properly on the next tick.
- FIXED: animating to a non-px value (like %) in a very rare case could result in 0 instead of the provided value. See https://greensock.com/forums/topic/22268-gsap-30x-wrong-lefttop-value/
- FIXED: in rare circumstances (when a from() or fromTo() tween is created AFTER the main rendering queue has finished on a particular requestAnimationFrame tick), there would be a 1-tick delay of the first render which could make it appear to jump initially. See https://greensock.com/forums/topic/22281-glitch-artifacts-in-gsap-3/ and https://greensock.com/forums/topic/22435-gsap-fromto-changes-in-v3-vs-v2/
- FIXED: if you set a "cursor" special property on a Draggable, it would only be set propertly after the initial press. See https://greensock.com/forums/topic/22294-draggable-3-non-default-cursor-appears-only-after-first-click/
- FIXED: if you set an animation's time() to a value GREATER THAN its duration, it would wrap instead of just capping it.
- FIXED: if you set an animation's timeScale() on the very same tick as a tween that's animating that tween's timeScale() starts, it could appear frozen until that (2nd) tween completes. See https://greensock.com/forums/topic/22320-infinite-rotation-starting-with-easeout-and-ending-infinite-with-ease-linear/?tab=comments#comment-105554
- FIXED: if an empty NodeList is passed in as the target of a tween, and you set gsap.config({nullTargetWarn:false}), it will no longer issue any warnings. See https://greensock.com/forums/topic/22342-stop-warnings-in-empty-nodelist
- FIXED: worked around an issue where some browsers leave extra whitespace in front of CSS variables, so when you getProperty() with a certain unit, it could be miscalculated. See https://greensock.com/forums/topic/22388-possible-bug-getproperty-doent-return-proper-units-when-units-are-on-the-property/
- FIXED: the UMD/ES5 files, when loaded directly into the browser, set a "default" as an export which affected the window. Some other libraries assume that's actually going to be a reference to the window itself, so now we remove the default after setting it on the window, in order to avoid conflicts like that. See https://greensock.com/forums/topic/22404-conflict-between-gsap-3-and-videojs/
- FIXED: isActive() could return 0 instead of false in some cases. See https://greensock.com/forums/topic/22425-isactive-bug-equals-0-not-a-boolean/
- FIXED: if you set an animation's progress() to exactly 1 and then reverse() it, it wouldn't play automatically. See greensock#348
PreviousNext