4

jQueryを使用して画像をクロスフェードしています。

これは私が使用しているコードです:

$('.' + currentimage).fadeOut('slow', function() {
    $('.' + selectedimage).fadeIn('slow');
});

これは、選択した画像がフェードインし始める前に、最初の画像を100%フェードアウトします。最初の画像がたとえば60〜70%フェードアウトしたときに、2番目の画像でフェードインを開始する簡単な方法はありますか?

編集:すべての良い答え。さらに問題があると思います。私の画像は互いに重なり合って表示されていません。一度に表示できる画像は1つだけです。

4

4 に答える 4

3

試す

$('.' + currentimage).fadeOut('slow');
$('.' + selectedimage).delay(100).fadeIn('slow');
于 2012-08-15T15:34:45.720 に答える
3

slowは 600 ミリ秒なので、420 ​​は 70% になります

$('.' + currentimage).fadeOut('slow');
$('.' + selectedimage).delay(420).fadeIn(600);
于 2012-08-15T15:36:12.197 に答える
1

フェードの一部をごまかして適用することができます ( fadeToを使用し、他の関数を呼び出してから続行します。

$('.' + currentimage).fadeTo('slow', .6, function() {
    $('.' + selectedimage).fadeIn('slow');
    $(this).fadeOut('slow');
});
于 2012-08-15T15:37:43.190 に答える
-1

これは、そこで宣言している関数が、完了fadeOut()後にのみ呼び出されるコールバック関数であるためです。fadeOut()目的の効果を得るには、単純に 1 つの項目を別の項目の直後に実行できる必要があります。これは、 の X% から開始するほど正確ではありませんが、目的の効果が得られるようにとの時間をfadeOut()調整したり、 に を投入したりすることができます。fadeOutfadeIndelay()fadeIn

$('.' + currentimage).fadeOut('slow');
$('.' + selectedimage).fadeIn('slow');
于 2012-08-15T15:35:56.570 に答える