2011-08-14 10 views
1

バックグラウンド画像を0%から100%の間で前後に移動させようとしています。背景画像のアニメーション

#swipe { 
    position:absolute; 
    background-image:url(images/title-back-grade.png); 
    background-position:50% 0%; 
    height: 250px; 
    width: 100%; 
    top: 108px; 
    left: 0px; 
    z-index: 2; 
} 

<div id="swipe"></div> 

$(document).ready(function() { 
$('#swipe').css({backgroundPosition:"(50% 0)"}); 
$('#swipe').animate(
     {backgroundPosition:"(-1% 0)"}, 
     {duration:500}); 

}); 

誰かが私を助けることができますか?

+0

を始めることができます実際のピクセル値を使用してみてください。私はパーセンテージで値をアニメーション化することはサポートされているとは思わない。私は間違っている可能性がありますが、0,100%はサイズにかかわらずブラウザーウィンドウにきちんと整列するので、ピクセル値は問題になります。 – rossipedia

答えて

0

パーセントと言うと、それは何のパーセンテージとしてあいまいになりますか?より良い方法は、(ハードコードされた値を使用したくない場合は)ピクセル値を計算し、それらを使用することです。 (ヨーヨーはまだいない場合)

は、画素値を用いて背景をアニメーション化する上でいくつかの素晴らしい例については、このtuturialを見てみましょう:http://snook.ca/archives/javascript/jquery-bg-image-animations

+0

私は少なくとも私の卒業ではなく、ピクセルのパーセンテージを計算できるかどうかはわかりません。 –

+0

さて、もしあなたがbroswerウィンドウの目に見える部分の100%を意味するならば、 '$(window).width()'はあなたに "visible"幅の100%を与えます。 50%を得るには、値に0.5を掛けます。 '0% - > 0px' :) – Mrchief

0

これは、あなたは

http://jsfiddle.net/efortis/nTWFt/

function animateBg() { 
    var bg = $('#swipe'); 
    bg.animate({left: '-=5000px' }, 10000, 
    function() { 
    bg.animate({left: '+=5000px' }, 10000, 
     function() {     
     animateBg(); 
     }); 
    }); 
} 

$(document).ready(function() { 
    animateBg(); 
}); 
+0

理想、それは動作しない... $(ドキュメント).ready(関数(){ \t $ POS = 50; \t $ DIR = 1; \t window.setInterval(移動、10); }); function movement(){ \t \t $( '#swipe')。css({backgroundPosition:$ pos + "%0px"}); \t \t IF($のPOSの== 100) \t {\t \tの$ DIR = -1。 \t} \t($ posの== 0) \t {\t \tの$ DIR = 1の場合。 \t} \t $ pos = $ pos + $ dir; }ちょうどIEにない –

+0

は、IEがスクリプトを実行できるようにする場合に有効です –

+0

@Stephen Brownはい別の解決策は答えとして投稿しませんか?あなたはあなたの答えを投稿し、アンサーされたものとしてそれを設定することもできます。 –