おそらく30個のアイテムを持つ順序付けられていないリストがあります。これらのアイテムの 1 つにカーソルを合わせると、残りのリスト アイテムは 30% にフェードし、ホバーしたアイテムは 100% のままになります。リストから離れると、それらはすべて 100% までフェードバックし、私はこれを管理しました。
アイテムからアイテムに移動すると、他のリストアイテムが 100% までフェードバックし、その後 30% までフェードバックするときに問題が発生します。ユーザーがリスト全体から離れない限り、30% のままにしておきたいです。
各リスト項目で hoverIntent プラグインを使用します。また、jQuery を使用してクラスを現在のリスト項目に追加したので、残りの部分をフェードアウトして、離れたら削除できました。jQuery クックブック サイト ( http://docs.jquery.com/Cookbook/wait )にある待機関数を使用しました。
言ってることわかりますか?
これまでの私のコードは次のとおりです。
$.fn.wait = function(time, type) {
time = time || 300;
type = type || "fx";
return this.queue(type, function() {
var self = this;
setTimeout(function() {
$(self).dequeue();
}, time);
});
};
$("#sites li:not(#sites li li)").hoverIntent(function(){
$(this).attr('class', 'current'); // Add class .current
$("#sites li:not(#sites li.current,#sites li li)").fadeTo("slow", 0.3); // Fade other items to 30%
},function(){
$("#sites li:not(#sites li.current,#sites li li)").wait().fadeTo(600, 1.0); // This should set the other's opacity back to 100% on mouseout
$(this).removeClass("current"); // Remove class .current
});
*明らかに、これは $(document).ready(function() 内にあります
誰でも私を助けてもらえますか?
どうもありがとう