0

次のコード行があります。

$(".product-list .product").hover(function() {
    $(this).find('.product-description').stop().slideDown("slow");
}, function() {
    $(this).find('.product-description').stop().slideUp("slow");
})

ここで問題となるのは、十分に速く移動してから要素をもう一度ホバーすると、.product-descriptionが古いイベントの高さに固執することです。

例えば:

  1. マウスオーバー:要素->アニメーション->全高:200px
  2. mouseleave:element->アニメーション停止->アニメーション->高さ:0(現在のデフォルトの高さ:100px)
  3. マウスオーバー:要素->アニメーション->全高:100px(ただし200pxである必要があります)

そして、はい、私はすでに通常の高さを取得して試しましたが、問題は、jQueryが実際に処理できないclearfixを使用していることです。

アドバイスありがとうございます

4

1 に答える 1

1

以下のように使ってみてください、

$(".product-list .product").hover(function() {
    $(this).find('.product-description').stop(true, true).slideDown("slow");
}, function() {
    $(this).find('.product-description').stop(true, true).slideUp("slow");
})

.stop([clearQueue] [、jumpToEnd])

clearQueueAキューに入れられたアニメーションも削除するかどうかを示すブール値。デフォルトはfalseです。

jumpToEndA現在のアニメーションをすぐに完了するかどうかを示すブール値。デフォルトはfalseです。

于 2012-04-12T15:36:28.053 に答える