1

このスクリプトを使用してホバー効果を実行しようとしています:

function itemhover(){
    $(".item").mouseenter(function(){
        $(".mask").fadeIn();
    })
    $(".item").mouseleave(function(){
        $(".mask").fadeOut();
    })
}

問題は、任意のアイテムにカーソルを合わせると、すべての .mask でフェードインすることです。ホバーされているアイテムで機能するように機能をポイントするにはどうすればよいですか?

また、アイテム上でマウスをすばやく出し入れすると、フェード効果がおかしくなり、止まらないようで、しばらくすると止まるのはなぜですか?

ありがとう

4

2 に答える 2

1

.mask 要素が .item 要素内に含まれているようです。その場合は、$(this)ホバーされているアイテムの「スコープを設定」するために使用できます (これは、ホバーされているアイテムを指します)。

function itemhover(){
    $(".item").mouseenter(function(){
        $(this).find(".mask").stop(true, true).fadeIn();
    })
    $(".item").mouseleave(function(){
        $(this).find(".mask").stop(true, true).fadeOut();
    })
}

また、フェード.stop(true, true)アニメーション効果の前にチェーンして、以前にキューに入れられたアニメーションを停止し、最後にキューに入れられたアニメーションの最後にジャンプすることもできます。

于 2013-02-20T15:05:09.887 に答える
0

このステートメントを使用できます

$(".mask",this).fadeIn();
于 2013-02-20T15:08:19.650 に答える