Ce plugin est destiné à l'animation de sprite en css. Concretement il s'agit de changer la propriété "background-image" d'un élément HTML en utilisant requestAnimationFrame. Les sources sont aussi sur GitLab.
Définir une div avec width et height plus un background-image. la div affichera donc la 1er frame du sprite.
#cheval{
width: 288px;
height: 254px;
background-image: url(../images/cheval.jpg);
}
Puis ajoutez jQuery et le plugin spriteMe.
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="js/libs/jquery.spriteme.js" type="text/javascript"></script>
Enfin, initialisez le plugin.
$(function() {
$("#cheval").spriteMe();
});
Ici la demo utilise les paramètres suivants:
//pour le css
width: 144px;
height: 127px;
//et pour le JS
$("#cheval").spriteMe({
loop:true,
fps: 12,
pixelratio: 2,
});
Le plugin possède plusieurs options. Voici la liste avec les valeurs par défaut.
Remarque :Le plugin compte les images à partir de 0.
$(function() {
$("#cheval").spriteMe({
fps: 12,
loop: false,
autoplay: true,
gotoframe:false,
reverse:false,
maxframe: false,
pixelratio: 0,
complete: function(){
console.log('This is the end.');
}
});
Les méthodes peuvent étre appellées pendant la lecture de l'animation, ou non.
// les deux methodes ne sont pas identiques, play() est a utiliser apres un stop().
// si loop = false et que l'animation est arrivée au bout; alors il faut utiliser resume()
$("#cheval").spriteMe("play");
$("#cheval").spriteMe("resume");
// stop l'animation
$("#cheval").spriteMe("stop");
//relance l'animation depuis le debut
$("#cheval").spriteMe("restart");
//change les fps : INT
$("#cheval").spriteMe("fps",30);
//saute vers la frame : INT
$("#cheval").spriteMe("gotoframe",30);
// inverse le sens de lecture du sprite
$("#cheval").spriteMe("reverse");
// inverse le sens de lecture du sprite
$("#cheval").spriteMe("setreversestate", false);
// change le nombre de frame de l'animation INT
$("#cheval").spriteMe("setmaxframe",42);
// supprime la limitation de frame: BOOLEAN
$("#cheval").spriteMe("setmaxframe",false);
// change l'etat de la répétition automatique BOOLEAN
$("#cheval").spriteMe("setloop",false);
Le fichier image peut avoir une ou plusieurs colonnes, peut importe. le sprite sera affiché de gauche à droite, ligne par linge. Le plugin calcule seul les dimentions de l'image et donc le nombre de frame total dans l'animation.