Sprite Animation Example
by femfoyou
HTML
<div id="demo">
<p id="image" onmouseover="animateScript()" onmouseout="stopAnimate()">
</p>
</div>
CSS
#image {
height: 256px;
width: 256px;
background: url('https://cdn.codeandweb.com/blog/2016/05/10/how-to-create-a-sprite-sheet/spritestrip.png') 0px 0px;
}
JavaScript
var tID; //we will use this variable to clear the setInterval()
function stopAnimate() {
clearInterval(tID);
} //end of stopAnimate()
function animateScript() {
var position = 256; //start position for the image slicer
const interval = 100; //100 ms of interval for the setInterval()
const diff = 256; //diff as a variable for position offset
tID = setInterval(() => {
document.getElementById("image").style.backgroundPosition =
`-${position}px 0px`;
//we use the ES6 template literal to insert the variable "position"
if (position < 1536) {
position = position + diff;
}
//we increment the position by 256 each time
else {
position = 256;
}
//reset the position to 256px, once position exceeds 1536px
}, interval); //end of setInterval
} //end of animateScript()