A Snap.svg plugin that lets you load and animate svgs using a simple schema.
A Snap.svg plugin that lets you load and animate svgs using a simple schema.
Include Snap.svg 0.4.1
and snap-animation-states.js
in the footer. No JQuery needed.
<script type="text/javascript" src="js/snap.svg.js"></script>
<script type="text/javascript" src="js/snap-animation-states.js"></script>
Your SVGs need a container element. You just need to add whatever class you're calling your svg with to the element that will contain it.
<i class="icon-hamburger"></i><br>
<i class="my-svg-selector"></i>
It's as simple as calling the plugin with the correct schema.
(function() {
SnapStates({ ...schema... })
})();
selector: string
css selector - ex: ".icon-hamburger"
svg: string
svg string or svg file reference
easing: string
"linear", "easein", "easeout", "easeinout", "backin", "backout", "bounce", "elastic"
transitionTime: int
Transition time is applied to each transform. A state with 3 transforms one after the other and a transitionTime of 500 ms will take a total of 1500 ms to finish
initState: string
Set initState equal to the state you want to run when the plugin is called.
states: obj
Contains the states and transforms to be performed. Each state contains an array of transforms.
key: state name
prop: array of transform objects
id: int/string/arr
The id should be unique to its state. If you want the transform to start after a timeout, the id takes an array: [id, timeout:int]waitFor: int/string/arr
Set the waitFor property to the id of a transform that it should follow. For a timeout, waitFor takes an array: [id, timeout: int]element: string
Takes the css selector of the element that the transform is affecting.x: int
Takes an x coordinate relative to the elements starting positiony: int
Takes a y coordinate relative to the elements starting positionr: int/array
s: int/array
attr: obj
Affect any svg attributepath: string
Represented by the "d" attribute in an svg. Learn more about paths.
drawPath: int/obj
transitionTime: int/obj
easing: string
same easing options as previously shown. Useful if you have several types of easing you want to display from transform to transformrepeat: obj
Will repeat the entire state from the point the repeat is called
loop :bool
set an infinite looploopDuration :int
end loop after a timetimes: int
loop the animation x timesevents:array of objects
event: string
works with any javascript eventstate: string/array
selector: string
a css selector used to indicate where to watch for the event - ex: an svg inside an anchor tag. The anchor tag will receive the selector so that when the anchor is clicked the svg animation runs.