5

に設定された div がありdisplay:hiddenます。display:block特定の要素 ( #navbar li a) がホバーされたときにこの div を設定したい。これが私のjavascriptです。

$('document').ready(function(){
    $("#navbar li a").onmouseover(function{
        $("#navbar ul").css("display","block"); 
    }); 
}); 

$("#navbar li a")これをテストしたので、適切な要素をターゲットにしていることがわかります。私のjavascriptコードに何か問題がありますか?

編集: これはドロップダウン メニューです。#navbar ulネストされたリストです。

4

5 に答える 5

8

使用する.hover

$('document').ready(function(){
    $("#navbar li a").hover(function(){
        $("#navbar ul").css("display","block"); 
    }); 
}); 

フェードイン効果が必要な場合は、使用してください.fadeIn

デモ

$(function() {
$('#div1').hover(function() { 
    $('#div2').fadeIn(); 
}, function() { 
    $('#div2').fadeOut(); 
});
});

完全を期すために、CSS のみの方法を次に示します。

(参考までに、このメソッドを使用しても、言うとおりにフェードしません。ホバー時に表示し、ホバーしていないときに消えます。)

デモ

#div2 {
    width: 200px;
    height: 200px;
    background: red;
    display: none;
}

#div1:hover ~ #div2 {
    display: block;    
}
于 2013-07-19T20:26:36.553 に答える
2

はい、あなたのコードに何か問題があります.jQueryにはonmouseoverイベントがありません.おそらくあなたが探しているのはmouseenterイベントですmouseover.mousemoveで継続的に発生します.

$(document).ready(function(){
    $("#navbar li a").on('mouseenter', function(){
        $("#navbar ul").show();
    }); 
}); 

一方、おそらく CSS だけでこれを行うことができますか?

于 2013-07-19T20:26:03.080 に答える
2

div を実際に不透明から 100% にフェードさせたい場合は、たとえば 80% (0.8 として表示) で不透明から開始し、次に 100% (1.0 として表示) にフェードします。不透明度のレベルから始めたいので、「display none」を使用して div を非表示にする必要があります。次に、効果が表示されないように不透明度を設定し、それを表示して 100% にフェードします。

 $("div.mydivclass").on("mouseenter", function () {
    $(this).css("display", "none");
    $(this).fadeTo("fast", 0.8);
    $(this).css("display", "");
    $(this).fadeTo("10", 1.0);
});
于 2015-08-03T00:28:34.987 に答える
1

すべての答えは show / hide です。あなたのコードも。フェードインについて質問です。

.fadeIn() 代わりに .fadeOut を使用し てください

http://api.jquery.com/fadeIn/

于 2013-07-19T20:30:21.123 に答える