2017-05-23 4 views
0

저는 JS noob이고 내 머리글에 position: fixed;을 적용하려하지만 내 모바일 메뉴가 닫혀있는 경우에만 적용됩니다 (따라서 클래스에 "닫힘"이 적용됨). 그것).다른 요소에 클래스가있는 경우 요소의 위치를 ​​변경하십시오.

여기까지 왔지만 작동하지 않습니다. 그것에 대한 어떤 생각? 미리 감사드립니다!

$(document).ready(function() { 
    if ($(".mobile_nav").hasClass("closed")) { 
    $("#main-header").css({ 
     'position':'fixed', 
     'top': '0', 
     'right': '0' 
    }); 
    } 
}); 
+0

코드가 작동해야합니다 ...하지만 한 번에 페이지가로드됩니다. 사용자가 nav를 닫을 때 실행되도록하고 싶습니까? –

+0

CSS로이 작업을 수행 할 수 없습니까, 아니면 마크 업에서 꽤 멀리 떨어져 있습니까? –

+0

빠른 답장을 보내 주셔서 감사합니다! nav는 기본적으로 닫혀 있으며, 고정되어 있어야합니다. 일단 사용자가 그것을 열면 "열린"클래스가 생기고 그 페이지로 올라가고 싶을 때입니다. 나는 CSS로 해봤지만, .mobile_nav는 # main-header가 있기 때문에 고쳐지지 않는다. 이유는 내 메뉴가 뷰포트보다 크기 때문에 사용자가 메뉴를 열 때 메뉴를 스크롤 할 수 있어야하기 때문입니다. –

답변

0

나는 CSS 클래스를 사용하여 그것을 할 것 ...

.main-header-when-mobilemenu-expanded{ 
    position:fixed; 
    top: 0; 
    right: 0; 
} 

및 jQuery를은 다음과 같습니다

$(document).ready(function() { 
    if ($(".mobile_nav").hasClass("closed")) { 
    $("#main-header").addClass("main-header-when-mobilemenu-expanded"); 
    } 

    $(".mobile_menu_bar_toggle").on("click",function(){ 
    $("#main-header").toggleClass("main-header-when-mobilemenu-expanded"); 
    }); 

}); 

당신은 짧은 클래스 이름을 사용할 수 있습니다)
이를 여기서 분명히 밝혀 질 것입니다.

+0

그 덕분에 도움을 주신 모든 분들께 감사드립니다. –

+0

답변이 제대로 작동하면 응답을 수락하는 투표 화살표 옆에있는 녹색 체크 표시를 제외하고) –

+0

완료! 나는 또한 오늘 서명 했으므로 투표를하지 않겠다. 투표 결과가 표시되지 않음 –

관련 문제