Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Animatation for arcs and bezier curves with jQuery
branch: master

Merge pull request #5 from louisremi/rotateOption

Add rotate option + lint the code + update demos and Readme
latest commit ac524032e3
weepy authored
Failed to load latest commit information.
test added README
README.markdown small tweaks
jquery.path.js Add rotate option + lint the code



Provides animation along bezier and circular arcs.

The animation engine in jQuery is focussed on single dimensional animation - hence it's difficult to animate two variables along a path.

This simple plugin provides a method of multidimensional animation, and in particular provides a method for animating along bezier curves and arcs.


Example: animate along a bezier path

var bezier_params = {
    start: { 
      x: 185, 
      y: 185, 
      angle: 10
    end: { 
      angle: -10, 
      length: 0.25
$("my_elem").animate({path : new $.path.bezier(bezier_params)})

Bezier curves are made form a start point, an end point each with a control point

  • start is starting point
  • end is the final point
  • x,y indicate the coordinates at that point. Required
  • angle is the angle of the control point from the line joining the start and end. Optional, default is 0
  • length is the distance from the point to it's control point as a ratio of the distance from start to end. Optional, default is 1/3


Exampe: animate along an arc

var arc_params = {
    center: [285,185],  
        radius: 100,    
        start: 30,
        end: 200,
        dir: -1
$("my_elem").animate({path : new $.path.arc(arc_params)})
  • center is the coords of the centre of an imaginary circle that contains the start and end point
  • radius is the radius of this circle
  • start is the angle of the start point. 0 is "North", measured clockwise
  • end is the angle of the start point. 0 is "North", measured clockwise
  • dir is the direction to move in. Only required if not obvious from start and end (e.g. if start is 100, end is 30, but you want to animate clockwise)

Other Paths

It is trivial to create other paths, or even animate other parameters. E.g:

var SineWave = function() {
  this.css = function(p) {
    var s = Math.sin(p*20)
    var x = 500 - p * 300 
    var y = s * 50 + 150
    var o = ((s+2)/4+0.1)
    return {top: y + "px", left: x + "px", opacity: o}
$("my_elem").animate({path : new SineWave})



Tested in

  • Firefox 3.5
  • Safari 4
  • IE 6, 7, 8
Something went wrong with that request. Please try again.