0

フェードに小さな問題があります。基本的に、最初の文字をフェードすると、2番目の文字が左に移動して最初の文字が配置されます。これを止める方法はありますか?もしそうなら、どのように?

$('.m').fadeIn( 4000, function() {
    $('.i').fadeIn( 3000, function() {
        $(this).fadeOut( 2000, function() {
            $('.full' ).fadeOut( 3000 );
        } );    
    } );
    $(this).fadeOut( 3000 );    
} );

jFiddle: http: //jsfiddle.net/MRvfC/

4

1 に答える 1

2

displayプロパティを使用する代わりに、を使用する必要がありますvisibility。残念ながら、jQueryはdisplay表示/非表示で使用するため、手動で行う必要があります。

$('.m').css( {'opacity':0,'visibility':'visible'} ).animate( {'opacity':1}, 4000, function() {
    $('.i').css( {'opacity':0,'visibility':'visible'} ).animate( {'opacity':1}, 3000, function() {
        $(this).animate( {'opacity':0}, 2000, function() {
            $('.full' ).animate( {'opacity':0}, 3000 );
        } );    
    } );
    $(this).animate( {'opacity':0}, 3000 ); 
});

CSSでに変更display:noneします。visibility:hidden可視性を最後に非表示に戻すことで処理能力を節約することも価値がありますが、優れたブラウザーは不透明度が0の何かをレンダリングしないことを知っています。

于 2013-03-08T17:52:52.097 に答える