「ペリクル」はiPhoneの動きをすべて含む長い画像であるため、「映画」として機能するコードを作成しました。映画のような動きの感覚を作り出すために、このコードはbackgroundPositionYに500pxを追加し、 30ミリ秒待ってからこのプロセスを再開します。
メカニズムは単純ですが、コードが長すぎます。特に、別の関数を追加するために使用される関数.toggle()を使用する場合は、別のクリックを行うと反対のアニメーションが作成されます。
/*animate*/
screen.toggle(function(e){
var mov = 0;
function cicloIphone(){
if(mov>6000){
mov=0;
};
iphone.css('backgroundPosition', '0 -'+mov+'px');
mov += 500;
if(mov<6000){
window.setTimeout(function(){
cicloIphone();
}, 30);
};
};
var timeoutIphone = window.setTimeout(function(){
cicloIphone();
},0);
},function(e){
var mov = 5500;
function cicloIphone(){
if(mov>6000){
mov=0;
};
iphone.css('backgroundPosition', '0 -'+mov+'px');
mov -= 500;
if(mov<6000){
window.setTimeout(function(){
cicloIphone();
}, 30);
};
};
var timeoutIphone = window.setTimeout(function(){
cicloIphone();
},0);
});
関数animate()を使用して合成したいのですが、30msごとに500pxから1000pxにジャンプしないため、効果を再現したくありませんが、流動性が高すぎて、ピクセルごとにピクセルが増えます。
/*animate synthesized*/
screen.toggle(
function(e){iphone.stop(true,true).animate({
'backgroundPositionX':'0px',
'backgroundPositionY':'-5500px'
},3000)},function(e){iphone.stop(true,true).animate({
'backgroundPositionX':'0px',
'backgroundPositionY':'0px'
},3000);
});