首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于jQuery的下拉菜单在右对齐时不正常

基于jQuery的下拉菜单在右对齐时不正常
EN

Stack Overflow用户
提问于 2012-11-23 16:53:35
回答 1查看 378关注 0票数 1

我有下面的脚本,它几乎完美地工作了:

HTML:

代码语言:javascript
复制
<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> 

CSS:

代码语言:javascript
复制
.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:

代码语言:javascript
复制
$(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/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-23 17:08:39

所以首先,请检查一下这个http://jsfiddle.net/MTESY/

如果您看到了预期的结果,实现它的方法是给您的第二个下拉div第二个类,比如second。然后创建一个css类.second {left: auto ! important; right: 0}。那你应该好好的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13533129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档