Я написал простую анимацию, используя CSS и HTML, используя спрайты. Он работает успешно в chrome и IE, но не в firefox.
<style type="text/css">
#sprite {
width: 96px;
height: 117px;
background: url(../../images/sprite_animation_frames.png) 0px 0px;
}
</style>
</head>
<body onload="main();">
<p align="center"><h1>The Running Man</h1></p>
<script>
var position = [
[0, 0],[-100, 0],[-200, 0],[-300, 0],[-400, 0],[-500, 0],
[0,-120],[-100,-120],[-200,-120],[-300,-120],[-400,-120],[-500,-120],
[0,-240],[-100,-240],[-200,-240],[-300,-240],[-400,-240],[-500,-240],
[0,-360],[-100,-360],[-200,-360],[-300,-360],[-400,-360],[-500,-360],
[0,-480],[-100,-480],[-200,-480],[-300,-480],[-400,-480],[-500,-480]
];
var pos;
function main(){
var img = document.createElement('img')
img.id = 'sprite';
document.body.appendChild(img);
setInterval(function () {
anim(img);
}, 50);
}
var i = 0;
function anim(el) {
if (i < 30)
i++;
else
i = 0;
var x = position[i][0];
var y = position[i][1];
el.style.backgroundPositionX = x + 'px ';
el.style.backgroundPositionY = y + 'px ';
}
</script>
В чем может быть проблема?
Способна решить проблему.
Просто заменил тег div вместо img, и он сработал.
Не знаю вопроса.
Firefox не поддерживает отдельные свойства backgroundPositionX
/Y
, и IE может жаловаться на дополнительное пространство. Пытаться:
el.style.backgroundPosition = x+"px "+y+"px";
background-image
для элемента?