2016-10-10 4 views
0

마우스를 가져 가면 "categoriesDropdown"메뉴가 드롭 다운되는 "categories"탭이있는 끈적 메인 메뉴가 있습니다.div를 BODY로 중심에 두는 방법 부모가 아닙니다.

  • 나는 화면의 폭을 가지고 있고, 화면의 중앙에 로 드롭 다운 메뉴가 필요합니다.

  • 메인 메뉴 하단에 고정하려면 드롭 다운 메뉴가 필요합니다.

유일한 문제는 본문에 드롭 다운 메뉴를 가운데에 배치 할 수 없다는 것입니다. 부모 div (카테고리)에만 상대적으로 배치 할 수 있습니다. 내가 사용하는 코드는 아래에 표시됩니다.

<div class="categories"> 
    <a>Categories</a> 
    <div id="categoriesDropdown"></div> 
</div> 

CSS

.categories { 
    padding-left: 20px; 
    padding-right: 20px; 
    height: 45px; 
    display: inline-block; 
    box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    -webkit-box-sizing: border-box; 
} 

#categoriesDropdown { 
    position: absolute; 
    background: #1d1d1d; 
    width: 100vw; 
    height: 0px; 
    z-index: -1; 
    overflow: auto; 
} 

#categoriesDropdown.show { 
    height: 500px; 
} 

편집 : 내가 왼쪽하려고 할 때 발생 : 0; 오른쪽 : 0; the grey square being the drop down menu

+0

내가 바로 당신이 할 일은해야 모두가 왼쪽 넣어 이해 해요 경우 0과 오른쪽 : #categories에 0을 입력하십시오. 그것을 terically 그리고 당신은 필요하면 0시 방향과 0시 방향으로 0을 사용할 수 있습니다. – Benneb10

+0

div의 중간에 센터를 배치합니다. 내 질문은 내가 몸의 한가운데에 중심을 둘 수있는 방법이다. – hermanboy07

답변

0

CSS 만 있으면 까다 롭지 만 jQuery와 CSS에서는 가능한 해결책이 있습니다. 나는 이것이 당신의 도움이 될지 확신하지 못합니다.

바디

<div class="categories"> 
    <a>Categories</a> 
    <div id="categoriesDropdown" class="categoriesDropdown"> </div> 

CSS는

body{ 
    margin : 0px; 
    padding : 0px; 
    } 
    .categories { 
    padding-left: 20px; 
    padding-right: 20px; 
    height: 20px; 
    display: inline-block; 
    box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    -webkit-box-sizing: border-box; 
    cursor : pointer; 
    top: 50px; 
    position: absolute; 
    } 
    .categoriesDropdown { 
    position: relative; 
    background: #1d1d1d; 
    width: 98vw; 
    height: 0px; 
    z-index:-1; 
    overflow:auto; 
    margin:0 auto; 
    color:#fff; 
    } 
    .categoriesDropdown_show { 
    height: 100px; 
    } 

스크립트

$(document).ready(function(){ 

    var c = $(".categories"); 
    var position = c.position(); 

    $(".categories").mouseenter(function(){ 
     $("#categoriesDropdown").appendTo('body'); 
     $(".categoriesDropdown").addClass("categoriesDropdown_show"); 
     $('#categoriesDropdown').css({'top':'calc('+position.top +'px + 20px)'}); 
    }); 
    $(".categories").mouseleave(function(){ 
     $(".categoriesDropdown").removeClass("categoriesDropdown_show"); 
     $("#categoriesDropdown").appendTo('categories'); 
    }); 
    }); 
+0

'20px'높이 대신 'categories'클래스에 대해 var를 선언 할 수도 있습니다. //$('#categoriesDropdown').css({'top':'calc('+position.top + 'px + 20px)'}); var h = c.height();$ ('# categoriesDropdown') .css ({ '상단': 'calc ('+ position.top + 'px +'+ h + 'px)'}); – kish0022

관련 문제