Saturday, September 6, 2025
HomeLanguagesJavascriptFabric.js easeInOutElastic() Method

Fabric.js easeInOutElastic() Method

In games or animations, there are many moving objects which can move them from point A to B linearly, but after applying an easing, or easing function, it can make it look more natural. An easing function says an animation of how to progress. In this way, a straight motion can take an interesting shape.

Easing functions specify the rate of change of a parameter over time. It is whose equations which make something move slowly at the start and speed up, or slow down near the end. The most common set of easing equations come from Robert Penner’s book and webpage.

The easeInOutElastic() method is used for the effect of easing in and out the object it is used on.

Syntax:

easeInOutElastic(t, b, c, d)

Parameters: This method accepts four parameters as mentioned above and described below:

  • t: This parameter holds the specified time when animation will start. For example, if value of t is 0, it means animation is just started.
  • b: This parameter holds the specified starting position of the object on x-axis. For example, if value of b is 10, it means the starting position of the objects on x-coordinate is 10.
  • c: This parameter holds the specified change in value for the object. For example, if value of c is 30, it means, the object has to move 30 to the right, ending at 40.
  • d: This parameter holds the specified duration of the whole process. For example, if the value of d is 2, it means, the object has 2 second to perform this motion from 10 to 40.

Return Value: This method returns the eased position of the object i.e., the position of the object at a specific time.

Example 1:

HTML




<html>
<head>
  <!-- Adding the FabricJS library -->
  <script src=
  </script>
</head>
<body>
<script type="text/javascript">
  
   // The easeInOutElastic() function
   function easeInOutElastic (t, b, c, d) {
      var s = 1.70158;
      var p = 0;
      var a = c;
      if (t == 0) return b;
      if ((t /= d / 2) == 2) return b + c;
      if (!p) p = d * (.3 * 1.5);
      if (a < Math.abs(c)) {
          a = c;
          var s = p / 4;
      }
      else var s = p / (2 * Math.PI) *
          Math.asin(c / a);
      if (t < 1) 
        return -.5 * (a *
             Math.pow(2, 10 * (t -= 1)) *
             Math.sin((t * d - s) *
                 (2 * Math.PI) / p)) + b;
      return a * Math.pow(2, -10 * (t -= 1)) *
        Math.sin((t * d - s)
          * (2 * Math.PI) / p) *
        .5 + c + b;
  }
  
   // Calling the easeInOutElastic() function
   // over the specified parameter values
   console.log(
     fabric.util.ease.easeInOutElastic(1, 2, 3, 4)
   ); 
</script>
</body>
</html>


Output:

2.0359083332712022

Example 2:

HTML




<html>
<head>
  <!-- Adding the FabricJS library -->
  <script src=
  </script>
</head>
<body>
<script type="text/javascript">
   
   // Initializing the parameters
   // with its values
   var t = 5;
   var b = 10;
   var c = 40;
   var d = 12;
  
   // Calling the easeInOutElastic() function
   // over the specified parameter values
   console.log(
     fabric.util.ease.easeInOutElastic(t, b, c, d)
   ); 
</script>
</body>
</html>


Output:

5.676948575674239
Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, neveropen Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out – check it out now!
RELATED ARTICLES

Most Popular

Dominic
32270 POSTS0 COMMENTS
Milvus
82 POSTS0 COMMENTS
Nango Kala
6639 POSTS0 COMMENTS
Nicole Veronica
11803 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11869 POSTS0 COMMENTS
Shaida Kate Naidoo
6752 POSTS0 COMMENTS
Ted Musemwa
7029 POSTS0 COMMENTS
Thapelo Manthata
6704 POSTS0 COMMENTS
Umr Jansen
6721 POSTS0 COMMENTS