1

ほぼ完全に機能する次のスクリプトがあります。

HTML:

<div class="menu">
    <div class="navigation1">icon Home</div>
    <div class="dropdown">
        <div class="items">icon Default 1</div>
        <div class="items">icon Reports 1</div>
        <div class="items">icon Other 1</div>
    </div>
    <div class="navigation2">icon Home</div>
    <div class="dropdown">
        <div class="items">icon Default 2</div>
        <div class="items">icon Reports 2</div>
        <div class="items">icon Other 2</div>
    </div>
</div> 

</p>

CSS:

.menu {
    position: relative;
    background-color:silver;
    font-family:Arial;
    font-size:12px;
    height:25px;
}

.navigation1 {
    float:left;
    padding:5px 10px 5px 10px;
    cursor:pointer;
}

.navigation2 {
    float:right;
    padding:5px 10px 5px 10px;
    cursor:pointer;
}

.navigation1::selection, .navigation2::selection { background:transparent; }
.navigation1::-moz-selection, .navigation2::-moz-selection { background:transparent; }

.navigation1:hover, .navigation2:hover {
    background-color:gray;
}

.navigation1.active, .navigation2.active {
    border:1px solid black;
    border-bottom-color:white;
    padding:4px 9px;
    background-color: white;
    position:relative;
    z-index:1;
}

.dropdown {
    display:none;
    border:1px solid black;
    border-bottom-width:2px;
    background-color:white;
    position:absolute;
    top:24px;
    padding:5px 10px;
    cursor:pointer;
}​

jQuery:

$(document).click(function(event) {
    $('.navigation1.active, .navigation2.active').click();
    $('.navigation1').removeClass("active");
});

$('.dropdown').each(function() {
    $(this).css('left', $(this).prev().position().left);
});

$('.navigation1, .navigation2').click(function(event) {
    $(this).siblings('.navigation1.active, .navigation2.active').click();
    $(this).toggleClass('active').next().toggle();
    event.stopPropagation();
});

$('.navigation1, .navigation2').disableSelection();​

問題:

唯一の問題は、右側のメニューです。ドロップダウンがドロップダウンすると、ドロップダウンの幅が十分でないため、テキストが折り返されてしまいます。その中のテキストに基づいてドロップダウンを正しい幅にするにはどうすればよいですか。

基本的に、左側のメニューの場合、ドロップダウンはメニューの右側から突き出ています

右側のメニューの場合、ドロップダウンはメニューの左側から突き出ている必要があります。

jsFiddle:

http://jsfiddle.net/mnXdv/53/

4

1 に答える 1

1

ということで、まずはこちらのhttp://jsfiddle.net/MTESY/をご確認ください

意図した結果が表示された場合、それを達成する方法は、2 番目のドロップダウンdivに 2 番目のクラスを与えることsecondです。その後、css クラスを作成します.second {left: auto ! important; right: 0}。あなたはそれから良いはずです。

于 2012-11-23T17:08:39.667 に答える