const ease = gsap. 5s inverse (ease) reverse; }For example, in the case of an ease-in-out timing function, an animation will ease in at the start of the keyframe and ease out at the end of the keyframe. この記事は普段transition-timing-functionの値に なんとなくease、ease-in、ease-out、ease-in-outを設定している方に読んでいただきたい内容になります。. Information about the animated element¶For CSS scroll-driven animations, auto fills the entire timeline with the animation. All the Timing Functions Defined in CSS. この加速曲線は、トランジションが行われるプロパティごとに 1 つの <easing-function> を用いて定義されます。. animation-delay: durasi tunda ebelum animasi kita mulai. g. Result: CSS Code: #myDIV { animation-timing-function: ease-in-out; } Click the property values above to see the result. The default timing is easy, which begins slowly, immediately speeds up, and then gradually decreases at the end. About External Resources. Hover me. The ease part of the styling is explained here. To control an element's transition-timing-function at a specific breakpoint, add a {screen}: prefix to any existing transition-timing-function utility. The CSS animation-timing-function defines the pace of your. Ceaser. inOut () Makes any easing function symmetrical. animation-timing-function: ease-in-out; Like ease, but more pronounced. Its default resets on each cycle. For example, in the CSS below, blur (5px) is the underlying value, and blur (10px) is the effect value. ::view-transition-group is given the following default styling in the UA stylesheet: css. Description. 1 Answer. The x coordinates of P1 and P2 are restricted to the range [0, 1]. animation-timing-function: linear; The animation has a *constant speed. 複数. The animation-timing-function property can have the following values: ease - Specifies an animation with a slow start, then fast, then end slowly (this is default) linear - Specifies an animation with the same speed from start to end; ease-in - Specifies an. CSS fading animation timing off. Initially we had a bounce effect (below) (with values 0. myDiv { animation: bounceIn . Here is an illustration: ease-out. Imagine rolling a ball across a floor. An anonymous scroll progress timeline is provided by some ancestor scroller of the current element. Imagine rolling a ball across a floor. 5k 12 73 77. To demonstrate, let’s make 10 values between 0 and 1 with a quadratic function. CSS Easing / Cubic-Bezier Function Generator is a free online tool for web developers that lets you build custom easing timing functions for transitions and animations. Avoid significant Easing In (slow acceleration) with animations that were triggered by user actions as. For example, use md:ease-in-out to apply the ease-in-out utility at only medium screen sizes and above. Subscribe. The animation property is one of the CSS3 properties. animation web animation api css; Subscribe to get our latest content by email. An easing curve is a line that defines the acceleration pattern on a graph. Here are some animation frames: Start: In-between: End: This is. 5s; animation-timing-function: elastic(7, 1. dark to support color schemes. animation-name: Specifies the name of the keyframe you want to bind to the selector: animation-duration: Specifies how many seconds or milliseconds an animation takes to complete: animation-timing-function: Specifies the speed curve of the animation: animation-delay: Specifies a delay before the animation will start: animation-iteration. Emotion, scaling attributes, and weight can all be used to implement. If you don’t quite like the easing, grab a handle and fix it. Then I have an animation with a set of keyframes for how far along that animation should be at each phase of the animation: @keyframes circlePath { 0% { offset-distance: 0%; } 10% { offset-distance: 8. Easing functions can change the look and feel of an animation by affecting the rate, or speed, of an animation. Now it's time to bring them both together with the Element. ease-inease-out - specifies an animation with a slow end ease-in-out - specifies an animation with a slow start and end cubic-bezier(n,n,n,n) - lets you define your own values in a cubic-bezier function The following example shows the some of the different speed curves that can be used: Example #div1 {animation-timing-function: linear;} #div2. Click on a curve to compare it with the current one. The points P 0 and P 3, which represent the start and end of the animation cycle, are always set to (0,0) and (1,1) repectively. Using those custom-easing functions in the animations can lead to an improved impression on users and a more delightful user. Options include: linear, ease, steps, and cubic-bezier. Easing functions may be specified on individual keyframes in a @keyframes rule. 52. For more information about Tailwind's responsive design features, check out the Responsive. On the other hand, the ease-out timing function starts the animation quickly and then decelerates. Let’s see more of them. Easing functions may be specified on individual keyframes in a @keyframes rule. The function parameters allow you to select the scroller, and the scrolling axis the timeline will be measured along. In CSS, we use the animation-timing-function property to apply easing to an element's animation. animation-timing-function: linear; animation-timing-function: ease-in-out; animation-timing-function can be used with many more keyword or function. ease-in-out. For example, the linear keyword will animate at an even speed. It is usually a keyword, which can be ease, linear, ease-in, ease-out, or ease-in-out. ease (Default) Animation starts slowly, then becomes fast, but ends slowly: linear: Animation speed is the same all the time: ease-in: Animation starts slowly: ease-out: Animation ends slowly: ease-in-out: Animation starts and ends slowly. In this interactive demo, we want the graphs of the f and g functions to be as close as possible to the dashed lines, which represent the ease-in timing function (below the identity line) and the ease-out timing function (above the identity line). 5) // === 0. This is similar to ease-in. Additionally, you can adjust the animation-timing-function property to change the pace and easing of the animation. animation-iteration-count: jumlah penambahan dalam animasi. Use the ease-{timing} utilities to control an element’s easing curve. The ease-in keyword, which is being used in the previous Codepen example, will set the acceleration to start slowly—easing in. Check that out: we started with a seemingly basic set of @keyframes and turned it into a full-fledged system for applying interesting animations for elements entering into view. ease timing function. It moves the element at a steady rate without any acceleration or deceleration. 此外,還有許多不同的 timing functions 供你選擇,請見 transition-timing-function。 用貝茲曲線定義 timing function. As with transitions, the choice of timing function can greatly impact the feel of an animation. See full list on blog. static func cubic Bezier (control Point1: SIMD2 < Float >, control Point2: SIMD2 < Float >) -> Animation Timing Function. Default: ease; animation-delay — optional number of seconds to wait before starting the animation; animation-iteration-count — how many times the animation should be performed. The animation-timing-function CSS property sets how an animation progresses through the duration of each cycle. in') ease (0. pulse { animation-name: pulseKey; animation-duration: 2s; animation-iteration-count: infinite; animation-timing-function: ease-out; }Easing functions may be specified on individual keyframes in a @keyframes rule. アニメーションの進行度を. 0) を表します。. Drop something on the floor, and it will first accelerate downwards, and then bounce back up after hitting the floor. The first value that can be parsed as a time is assigned to the transition-duration, and the second value that can be parsed as a time is assigned to transition-delay. ease-in will start the animation slowly, and finish at full speed. The animation property is used to animate (gradually change from one style to another) CSS properties with discrete values: layout properties (border, height, width, etc. Depending on your browser limitations (and if you're using CSS3 you should be ok regardless), you can actually apply easing transitions with the cubic-bezier() keyword instead. Add a comment. Note: If you do not specify animation-duration property, the default value is 0s, resulting in the animation not being played. It is a shorthand for animation-name, animation-duration, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, animation-fill-mode, animation-play-state, and animation-timeline. The animation-timing-function CSS property sets how an animation progresses through the duration of each cycle. 25, . If the result is not satisfactory, you can fine tune it easily by changing the. You can specify the timing with the following predefined timing options: ease, linear, ease. An example of a cubic-bezier function that bounces would be. Suppose an element has a timing function of ease-in; it means it starts slow and finishes fast. 25, 0. Instead of repeating the animation infinite times, you can specify a number of repetitions like this: animation: spin 3s 3 ease-in-out; /* 3secs, repeat 3 times */. We update the value of each variable on hover (or toggle, or whatever). 42,0. Syntax. I'm really new to After Effects, and I am used to creating CSS animations. Within a keyframe, animation-timing-function is an at-rule. Anime. CSS3 animations…The transition-timing-function property, normally used as part of transition shorthand, is used to define a function that describes how a transition will proceed over its duration, allowing a transition to change speed during its course. animation-delay = time B. div { width: 200px; height: 200px; background: red; animation: animScale 2000ms ease-in-out 1000ms infinite, animOpacity 2000ms ease-in-out 2000ms infinite; /* scale will start after 1s and opacity after 2s (1s after the scale)*/ } there is no order to follow, it can be any. Controlling the easing curve. An easy fix is to simply change the timing function to ease. The idea is to loop over a set of keys and generate a block of CSS with linear () easings. <head>. ease. Is there a different way that I should be doing this? Is there some property to apply the easing to the entire sequence. If no animation-timing-function is specified on a keyframe, the corresponding value of animation-timing-function from the element to which the animation is applied is used for that keyframe. However for some reason my images seem to fade over each other too fast and I can't control the timing well. the Playback rate of the animation. Use appropriate timing functions: Choose the timing function that matches the desired effect of the transition. animation-delay : xác định độ trễ của mỗi lượt chuyển động. The animation has the same speed from start to end: ease: Default value. Connect and share knowledge within a single location that is structured and easy to search. The non-step keyword values (ease, linear, ease-in-out, etc. The cubic-bezier () function. In CSS, we use the animation-timing-function property to apply easing to an element's animation. #myDIV { animation-timing-function: ease-in; } animation-timing-function: linear: animation-timing-function: linear; Chuyển động sẽ cùng tốc độ từ lúc bắt đầu tới lúc kết thúc. I have an animation in CSS that spins an image around its centre. 目次. First, you have to select 4 coordinates for constructing the cubic Bezier starting and ending points. I believe most developers think in terms of states:. animation-timing-function = ease D. animation-timing-function: establishes preset acceleration curves such as ease or linear. alternate. @keyframes combined { 16%, 48%, 78% { top: 190px; animation-timing-function: ease-out; } 32% { top: 50px; animation-timing-function: ease-in; } 62% { top: 100px; animation-timing-function: ease-in; } 90% { top:. The speed curve defines how the animation progresses through the duration of each cycle. This function. You can also add a class which specifies the iteration count to stop the infinite loop. 25. It's worth noting you can use JIT for one off classes, such as: [animation-duration:_2s] [animation-delay:_0. 32, 1. The W3Schools online code editor allows you to edit code and view the result in your browserThe W3Schools online code editor allows you to edit code and view the result in your browserA new way to define an easing in CSS is with linear(). ease-out. The ease keyword is the default value of the CSS timing-function property, and it is actually quite similar to the previous one, although it eases in at a faster rate before easing out much more gradually. Class. animation-timing-function: establishes preset acceleration curves such as ease or linear. If an element moves,. transition-timing-function: ease-in, linear; Each timing function is applied to the corresponding property as specified by the property. 0) and (0. 0, 1. If no animation-timing-function is specified on a keyframe, the corresponding value of animation-timing-function from the element to which the animation is applied is used for that keyframe. You can’t use this. The count to determinate if it is an even or an odd iteration starts at one. Currently when I run it just appears at the top of the page. 0. Animation can be previewed online by pressing the play icon. For now, we have to fiddle with the percentages of the time to create the custom timing like:For example, you can use the animation-duration class to specify the length of the animation, or the animation-timing-function class to specify an easing function that controls the acceleration of the animation. 16. 0s; animation-timing-function: ease-out; animation-fill-mode: forwards; } Worked perfectly! Not sure why there was a flicker if there was a delay but I'm glad this worked!Transition Timing Function Options. The animation-timing-function property. . The default transition-timing-function in CSS (the easing) is ease. Try changing some of these properties, and see what happens. . 100 / 300 = 0. A quadratic easing function is created by multiplying a value between 0 and 1 by itself (e. Es decir, se aplica al comienzo del. Description. Next let's create a class with an animation! animation: colorchange 45s Defines an animation with the keyframes we've set up previously. This works in Firefox, though when you toggle . The state of the element will not vary gradually, but. animation-timing-function: ease-out; or. In anime. 12: Iteration. You don’t necessarily have to simulate ease-in-out manually with percentages. The non-step keyword values (ease, linear, ease-in-out, etc. ) each represent cubic Bézier curve with fixed four point values, with the cubic-bezier() function value allowing for a non-predefined value. ease-in, ease-out, and. はじめに. andreas. Here is my preview page. To learn more, see the Color Schemes documentation. . The properties are listed in the CSS. #fading img. We can either animate the falling part with ease-in, or the rising part with ease-out. A typical use of the linear() function is to provide many points to approximate any curve. animation-delay: Sets a delay between the time the element is loaded and the beginning of the animation. This page helps you choose the right easing function. Within a keyframe, animation-timing. These will be described in huge detail in the animation section. Compare this to a ball that moves. 0). What you can do is create your own bezier-curve using a tool like cubic-bezier. At the moment, CSS3 transitions are supported in Safari 3. the animation’s fill. 67, 1. The first will be applied to animation-duration. This style places the frames farther apart at the beginning of the animation and closer together at the conclusion. You may specify multiple easing functions; each one will be applied to the corresponding property as specified by. The animation-timing-function property allows us to define the easing on an animation. EDIT: if there isnt, there really should be!Timing Functions in CSS Animations. For. The easing function that corresponds to a given animation, as determined by animation-name. If no animation-timing-function is specified on a keyframe, the corresponding value of animation-timing-function from the element to which the animation is applied is used for that keyframe. You may specify multiple easing functions; each one will be applied to the corresponding property as specified by the transition-property. slideRight { animation-name: slideRight; animation-duration: 1s; animation-timing-function: ease-in-out; visibility: visible !important; /* New code here: */ animation-delay: 1s; } It's important to note that animation-delay only delays. Use the select input to choose one of the seven keyword values. 6s” refers to the duration of the animation, and “ease-out” is an example of the timing-function to apply. ease-out. ease linear ease-in ease-out ease-in-out. animationComplete { animation-name: complete; animation-delay: 0s; animation-duration: 1. animation-timing-functionの設定方法. Applying this easing function to an animation would cause it to progress more slowly at first but then gradually progress more quickly. It is used to make the changes smoothly and create different effects, such as easing in, easing out, or easing in and out. Easing functions specify the rate of change of a parameter over time, allowing you to create more natural animations that mimic real-world motion. ease: animation-timing-function: ease; Chuyển động ban đầu sẽ chậm, sau đó nhanh, đến lúc kết thúc sẽ từ từ, đây là dạng mặc định. Every one second, the element will move 10px to the left and 10px down, until the end of the animation, and then again in reverse forever. Para animaciones con keyframes, la timing function se aplica entre los keyframes en lugar de sobre toda la animación. Specify the Speed Curve of the Transition. ) animation-timing-function. The accepted strings are the GreenSock easing functions. #. g. 2. See animation iteration count for more examples. For example, if we wanted to animate a bouncing ball, and we wanted a good . 4. The first parameter specifies the number of intervals in the function. 33. The animation-timing-function CSS property sets how an animation progresses through the duration of each cycle. animation-timing-function = <easing-function> # <easing-function> = linear | <linear-easing-function> | <cubic-bezier-easing-function> | <step-easing-function> <linear. In CSS, cubic-bezier is a timing function that defines the acceleration and deceleration of an animation or transition over time. P0 is (0, 0) and represents the initial time and the initial state, P3 is (1, 1) and represents the final. 58,1. It starts slowly, accelerates through the middle part. You can also add a class which specifies the iteration count to stop the infinite loop. transition-timing-function: step-end; The transition stays at the initial state until the end, when it instantly jumps to the final state. In between each stop the interpolation is done in a linear way, explaining the name of the function. For example, use md:ease-in-out to apply the ease-in-out utility at only medium screen sizes and above. First image start with 0s (0s - 30s) Second image start with 30s (30s - 60s) Third image start with 60s (60s - 90s) Description. Expects a number, or infinite. Por ejemplo, no hace falta definir animation-timing-function: ease o animation-delay: 0s, ya que son los valores por defecto. The count to determine if a cycle is even or odd starts at one. animation-timing-function: linear. 3. 0. 42, 0, 0. The interpolation occurs at a constant rate from beginning to end. There are three timing properties you can tune for every animated transition: the duration, the delay, and the easing function. The Easing module implements common easing functions. You want to effectively use something like ease-out as your object shoots up, and like ease-in as it starts falling back down. This module is used by Animated. ,fn) with a custom timing function. Ease-based timing functions would create a stop point or jump at the start of the loop cycle. 5s 12 backwards; crazy: Animation name. The values the animation-timing-function property accepts are: ease: Starts the animation slowly. We need to set the animation duration to auto, as the duration will be determined by the scroll progress. zero or one <easing-function> value representing the easing function to use; zero, one, or two <time> values. You can apply CSS to your Pen from any stylesheet on the web. Easing functions may be specified on individual keyframes in a @keyframes rule. ease-in - starts slowly, but accelerates at the end and stops abruptly. animation-timing-function: linear: animation-timing-function: linear; Chuyển động sẽ cùng tốc độ từ lúc bắt đầu tới lúc kết thúc. The animation-timing-function CSS property sets how an animation progresses through the duration of each cycle. The acceleration and deceleration of transitions is controlled using the transition-timing-function property. ease-in. The W3Schools online code editor allows you to edit code and view the result in your browserIn this case, “all” refers to the property being transitioned, then “0. The <single-transition-timing-function> CSS data type denotes a mathematical function that describes how fast one-dimensional values change during transitions or animations. Example: animation keyframes range from 0% – 25% – 75% – 100%, and use ease-in-out as the timing function. P0 and P3 are the start and the end of the curve and, in CSS these points are fixed as the coordinates are ratios. elasticObject { animation-name: goElastic; animation-duration: 1. C'est une propriété qui synthétise les propriétés suivantes : animation-name, animation-duration, animation-timing-function, animation-delay,Master uses the selector html. 25, 1); These functions are often called easing functions. The syntax for the linear easing function is simply the linear keyword. 補間がゆっくり始まり、急激に加速し、終わりに向かって徐々に遅くなることを示します。. This, in essence, lets you establish an acceleration curve so that the speed of the transition can vary over its duration. An animation-timing. ease is the default value — if you don't specify a timing function, ease gets used. For the vertical, bouncing, animation, we're going to make use of the ease-in and ease-out timing functions to simulate the effects of a gravity field:The cubic-bezier () function defines a Cubic Bezier curve. value, {. Easing functions may be specified on individual keyframes in a @keyframes rule. 275) A. There are infinite eases that you can use in GSAP so we created the visualizer below to help you choose exactly the type of easing that you. The order of time values is important. 2. 4s: Duration. Other timing options include ease, ease-in, ease-out, ease-in-out, and linear. CSS might help in some cases but not all, below is the code that will animate letter spacing on both hover and after hover. It wouldn't move at the same speed the whole time: it would probably accelerate rapidly to its maximum velocity, before gradually slowing down and coming to a stop (known as cubic-bezier easing). The animation-timing-function property specifies the speed curve of the animation. Your code is incorrect. La propiedad CSS animation-timing-function especifica cómo una animación CSS debe avanzar sobre la duración de cada ciclo. Available values include:The multi-argument constructor (see above) creates a completely new KeyframeEffect object instance. The ease timing function is the default of any transition in CSS. A few of the more popular keyword values for the transition-timing-function property include linear, ease-in, ease-out, and ease-in. Properties. I want to be able to change animation-timing-function and -webkit-animation-timing-function etc. The declaration looks like this:. That is, the change happens slowly both at the beginning and end, and speeds up. 0. CSS Easing / Cubic-Bezier Function Generator is a free online tool for web developers that lets you build custom easing timing functions for transitions and animations. transition-timing-function: ease; transition-timing-function: linear; transition-timing-function: step-end; transition-timing-function: steps(4, end); I hope in the future we get more. In CSS, we have done that by using the CSS transition-timing-function. Easing functions may be specified on individual keyframes in a @keyframes rule. Hi I am trying to move a image up the screen using CSS. Hello. The ease-in timing that is desired for the transform defined in the 50% segment is defined a segment before in the 25% segment's animation-timing-function: ease-in. Possible values: linear: even speed over the whole animation. 25, 0. ease-in. Timing function to specify a specific speed curve for the transition. Transition timing function classes: ease-linear: In this, the animation has the same speed from start to end. In other words, t is the same as animation progress. animation-delay: the time between the element being loaded and the. The ‘animation-timing-function’ in CSS determines how fast your animation will play: animation-timing-function: value;. 0. ease-in: This is similar to easing where the end of the animation is fast. Within a keyframe, animation-timing-function is an at-rule. }); }); Easing is the primary way to change the timing of your tweens. Easing curves are commonly referred by many other names such as Motion Curves, Timing Functions, Bezier Curves or just. To create multiple animations using CSS animations, we can enter all of the properties we want to animate in one @keyframes at-rule and use it in an animation property, as seen in the following code snippet:. When you’re happy, snag your code and off you go. animation-fill-mode - you need to set this to forwards. You can define a duration in three ways:Lastly, we need to add our animation to the progress bar element, with our keyframe animation as the animation-name. Ease Out Spacing: The antithesis of ease in style is ease out spacing. See the Pen by Christina Perricone ( @hubspot ) on CodePen . Best Practices. animation-delay - default 0s. The Safari position on the proposal is positive. You can generate CSS code for cubic Bezier animation timing functions by following these easy steps. 1. cubic-bezier(0. In a CSS animation, you can specify your timing function as part of the shorthand animation property, or by setting the animation-timing-function property directly. Result: CSS Code: #myDIV { animation-timing-function: ease; } Click the property values above to see the result. CSS3におけるanimation-timing-functionプロパティの意味と使い方、値の指定方法、サンプルコード、使用例について解説します。. 0), the transition speed of the animating property begins slowly and increases. 5s; animation-timing-function: ease-in-out; transform-origin: 24px 10px; animation-fill-mode: forwards. Los posibles valores son una o varias <timing-function> (en-US). Basic Usage Changing animation timing function . When you’re happy, snag your code and off you go. animate-end { animation-iteration-count: 3; animation-duration: 1s;. ease-in-out: With this property value, the animation both starts and ends slow. About External Resources. static var ease In Out: Animation Timing Function. We won't send you spam. The values the. Understanding Timing-Functions was the trickiest part for me to wrap my mind around. 06. It defines the total duration of a transition from state A to state B, whether the transition involves scaling, distorting, rotating or modifying the style of an element. Total animation time calculated by : 30s * 4 = 120s // 4 images having 30s. This is a Bézier timing function with the control points (0. To use the ease-in timing function in Core Animation, you can set the timingFunction property to CAMediaTimingFunction(name: . In between each stop the interpolation is done in a linear way, explaining the name of the function. Here’s the box with the easing function turned on: See the Pen Bouncing Box 2 by Brandon Gregory (@pulpexploder) on CodePen. animation-timing-functionプロパティは、アニメーションが変化する速度を指定します。. animate-end { animation-iteration-count: 3; animation-duration: 1s; animation-timing. The ease-in timing function starts the transition. If you are feeling a little fancy you can add timing functions, fill mode, direction and delay. The animation-composition property helps to specify how to combine the underlying value with the effect value. By using steps () with an integer, you can define a specific number of steps before reaching the end. Not surprisingly, Internet Explorer bounces the icon completely off screen (looks like it doesn't like using both em and px units), but animation-duration-wise, it acts the same as Chrome, which uses whatever animation-duration was set to when the. This, in essence, lets you establish an acceleration curve so that the speed of the transition can vary over its duration. This function accepts a number of stops, separated by commas. animation-play-state - default running. The animation-timing-function, which is not as obvious in its meaning as the previous two properties, is used to define the manner in which the CSS animation progresses. There are several presets available in CSS which are used as the value for the animation-timing-function like. The transition-timing-function property specifies the speed of the transition throughout the element’s duration. e. top { animation-name: FadeInOut; animation-timing-function: ease-in-out; animation-iteration-count: infinite; animation-duration: 10s; animation-direction: alternate; } Creating Image Effects Dynamically. . Easing functions may be specified on individual keyframes in a @keyframes rule. The steps () functional notation defines a step function dividing the domain of output values in equidistant steps. Within a keyframe, animation-timing-function is an at-rule-specific. In this playground, both spinners complete 1 full rotation in 2 seconds. The 'animation-timing-function' property sets the animation to have an ease-in-out timing function, which means that it starts and ends slowly with a smooth acceleration in between. Profile or Media card. It should happen only after the 7 animations. If you applied, say, an ease-in. ease-in: animation. Easing functions may be specified on individual keyframes in a @keyframes rule. My question is: is there a way to combine the two or chain them? something on the lines of:-webkit-animation-iteration-count: 1, infinity; -webkit-animation-timing-function: ease-in, linear; the former does not work btw. In other words, the timing function is applied at the start of. You can’t use this. This will result in an animation that spins first one way and then the other. 65, 0, 0. Within a keyframe, animation-timing-function is an at-rule-specific. The animation-timing-function specifies the speed curve of an animation. js offers a long list of built-in easing functions such as 'linear', 'easeInQuad', and 'easeOutQuad'. ease-out - starts quickly, but slows down at the end. animation-timing-function: ease-out; } } In this case the first half of the animation will be linear, and the second half would use the ease-out timing function.