1
私はスプライトシートが5760ピクセル幅×5400ピクセルの高さで、10行と6列のそれぞれが960ピクセル幅×540ピクセルの高さです。スプライトシート内のすべてのスプライトは、左から右、上から下に配置されています。おそらくCSSを使用してアニメーションとして60枚の画像を再生したいと思っていましたが、必要なコードが分かりません。誰にも何か提案はありますか?CSSスプライトシートのアニメーションのサポート
私はスプライトシートが5760ピクセル幅×5400ピクセルの高さで、10行と6列のそれぞれが960ピクセル幅×540ピクセルの高さです。スプライトシート内のすべてのスプライトは、左から右、上から下に配置されています。おそらくCSSを使用してアニメーションとして60枚の画像を再生したいと思っていましたが、必要なコードが分かりません。誰にも何か提案はありますか?CSSスプライトシートのアニメーションのサポート
これに対する最も簡単な解決策は、バックグラウンド位置の変更をCSSクラスで順番に割り当てることです。
ie。
.class1{background-position:0,0} // top left
.class2{background-position:-960px, 0} // indent by 960
// go to .class6 minus 960 to first px value
.class7{background-position:0,540px} // got to left of 2nd row
.class8{background-position:-960px,-540px} // got to left of 2nd row
// keep going for 10 rows, minus 540 per row and 960 per col
その後、JavaScriptで(jQueryを使って)
var viewarea = documentGetElementByID('my_window'); // id of DIV
var counter = 0;
var speed = 300; // miliseconds between frame change
function loopAnimation(){
// remove old frame
if($(viewarea).hasClass("class"+counter){
$(viewarea).removeClass("class"+counter);
{
// change counter
if(counter == 60){
counter = ;
}else {
counter++;
}
// move to next frame
$(viewarea).addClass("class"+counter);
// set animation to do another frame
var t = setTimeout(function(){loopAnimation();}, speed);
}
// begin animation
loopAnimation();
あなたがしなければならないのは、 '背景-position'を操作することです。あなたは何か探せましたか? – slick
私はCSSを使ってスプライトシートからアニメーションを作成する方法を見ようと1週間以上グーグルグーグルで行ってきましたが、何らかの理由でそれが私のpngファイルでは動作しませんでした。グリッドスプライトシートを使用しているCSSアニメーションを使用している人はいません。ほとんどの人はスプライトシートをグリッドではなく単一の行または列として使用しています。 –
私はここに似たようなことを実装しています:http://templates.newsoftdemo.info/steps-animation –