2017-10-08 259 views
0

我一直在製作此模板頁面,並希望它能夠在某個屏幕尺寸以下,在按下菜單按鈕時導航欄變爲可擴展。我有媒體工作,但jQuery不會使菜單滑出。我現在只是擔心功能,並可以在以後處理美觀。另外,我使用了JQuery,因爲我發現它更容易處理(它可能不是必需的,但我更喜歡它,因爲它節省了我的時間)。導航欄不會滑出

$(document).ready(function() { 
 
\t $('.nav_li_small').hide(); 
 
\t $('#menu').click(function() { 
 
\t \t $('.nav_ul_small').animate({width: '100%'}, 200); 
 
\t \t $('.nav_li_small').show(); 
 
\t }); 
 
});
body { 
 
    background-image: url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQmnAiwrvrJIdXGctU8ria4DrIWLxr3ozVposlXByZJUcg_65BB); 
 
    background-repeat: no-repeat; 
 
\t background-size: 100vw 100vh; 
 
\t background-color: #cccccc !important; 
 
\t border-top:0px; 
 
\t margin-top:0px; 
 
\t margin-right:0px; 
 
\t margin-bottom:0px; 
 
\t margin-left:0px; 
 
} 
 
.container-fluid { 
 
\t position: relative; 
 
\t background-color: #fff; 
 
\t height: 0px; 
 
} 
 
.no-gutter > [class*='col-'] { 
 
    \t padding-right:0; 
 
    \t padding-left:0; 
 
} 
 
.name { 
 
\t 
 
} 
 
#company_name { 
 
\t font-size: 35px; 
 
\t font-family: 'Raleway', sans-serif; 
 
\t position: absolute; 
 
\t color: #fff; 
 
\t padding: 20px; 
 
} 
 
.head_bar { 
 
\t position: absolute; 
 
\t width: 100%; 
 
} 
 
.head_small { 
 
\t display: none; 
 
} 
 
.nav_ul { 
 
\t float: right !important; 
 
\t position: absolute; 
 
\t list-style-type: none; 
 
    \t padding: 30px; 
 
} 
 
.nav_li { 
 
\t font-size: 18px; 
 
\t font-family: 'Raleway', sans-serif; 
 
\t color: #fff; 
 
\t padding: 20px; 
 
\t display: inline-flex; 
 
} 
 
.nav_li a { 
 
\t color: #fff; 
 
} 
 
.nav_li a:hover { 
 
\t color: #fff; 
 
\t border-bottom: 3px solid white; 
 
\t text-decoration: none; 
 
} 
 
.nav_ul_small { 
 
\t position: absolute; 
 
\t list-style-type: none; 
 
    padding: 0px; 
 
\t height: 100vh; 
 
\t background-color: gray; 
 
\t z-index: 2; 
 
} 
 
.nav_li_small { 
 
\t font-size: 13px; 
 
\t font-family: 'Raleway', sans-serif; 
 
\t color: #fff; 
 
\t padding: 10px; 
 
\t z-index: 3; 
 
} 
 
.nav_li_small a { 
 
\t color: #fff; 
 
} 
 
.nav_li_small a:hover { 
 
\t color: #fff; 
 
\t border-bottom: 3px solid white; 
 
\t text-decoration: none; 
 
} 
 
#company_name_small { 
 
\t text-align: center; 
 
\t font-size: 35px; 
 
\t font-family: 'Raleway', sans-serif; 
 
\t position: absolute; 
 
\t color: #fff; 
 
\t padding: 10px; 
 
\t left: 0; 
 
} 
 
@media only screen and (max-width: 940px) { 
 
\t .head_bar{ display: none; } 
 
\t .head_small { display: inline; } 
 
} 
 
.active { 
 
\t border-bottom: 3px solid white; 
 
} 
 
.content { 
 
\t position: relative; 
 
\t top: 40vh; 
 
} 
 
.content_box { 
 
\t background-color: #fff; 
 
\t color: #000; 
 
\t font-size: 18px; 
 
\t font-family: 'Raleway', sans-serif; 
 
\t padding: 10px !important; 
 
\t box-shadow: 0 0 5px #312424; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
\t <link rel = "stylesheet" type = "text/css" href = "Home.css"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> 
 
\t <link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet"> 
 
\t <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
\t <script src = "Home.js"></script> 
 
</head> 
 
    <body> 
 
\t <div class = "container-fluid"> 
 
\t \t <div class = "row no-gutter head_bar"> 
 
\t \t \t <h2 id = "company_name" class = "col-xs-3">Welcome</h2> 
 
\t \t \t <ul class = "col-xs-9 nav_ul" align = "right"> 
 
\t \t \t \t <li class = "nav_li"><a href = "" class = "active">Home</a></li> 
 
\t \t \t \t <li class = "nav_li"><a href = "">About Us</a></li> 
 
\t \t \t \t <li class = "nav_li"><a href = "">Contact</a></li> 
 
\t \t \t \t <li class = "nav_li"><a href = "">Portfolio</a></li> 
 
\t \t \t </ul> \t \t \t 
 
\t \t </div> 
 
\t \t <div class = "row no-gutter head_small"> 
 
\t \t \t <h2 id = "company_name_small" class = "col-xs-12">Welcome</h2> 
 
\t \t </div> 
 
\t \t <div class = "row no-gutter head_small"> \t 
 
\t \t \t <button id = "menu">Menu</button> 
 
\t \t \t <ul class = "nav_ul_small"> 
 
\t \t \t \t <li class = "nav_li_small"><a href = "" class = "active">Home</a></li> 
 
\t \t \t \t <li class = "nav_li_small"><a href = "">About Us</a></li> 
 
\t \t \t \t <li class = "nav_li_small"><a href = "">Contact</a></li> 
 
\t \t \t \t <li class = "nav_li_small"><a href = "">Portfolio</a></li> 
 
\t \t \t </ul> \t \t \t 
 
\t \t </div> 
 
\t \t <div class = "row no-gutter content"> 
 
\t \t \t <span class = "col-xs-2"></span> 
 
\t \t \t <div class = "col-xs-8 content_box">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rutrum ex sed erat dignissim convallis. Vestibulum ut volutpat leo, sit amet iaculis ex. Pellentesque vitae pulvinar lorem. Nulla vel enim at neque rutrum convallis. Praesent varius non dui eu molestie. Pellentesque tincidunt, sapien sed placerat pulvinar, mi magna mollis justo, sed aliquam ante sem at ante. Donec laoreet rhoncus velit, vitae interdum nisi rutrum in. Pellentesque non lectus et nunc eleifend luctus in et nisi. Duis sit amet enim a enim vestibulum pulvinar nec vitae erat. Donec gravida mattis suscipit. Donec elementum porta volutpat. Maecenas scelerisque, nisi a pharetra gravida, felis risus egestas magna, id dictum nulla est eget dui. Integer in tempus sapien.<br><br>In eget nunc non sem dignissim ullamcorper non ut risus. Vestibulum rutrum ipsum nec pellentesque placerat. Nulla aliquam a elit vel molestie. Maecenas maximus, dolor ac rhoncus varius, turpis eros imperdiet libero, nec tempor tortor ex quis ligula. Nulla a molestie lectus, non feugiat diam. Cras tempor eget purus nec sollicitudin. Donec aliquam, neque vel hendrerit dignissim, orci purus dictum justo, a tristique sapien neque sed arcu. Nullam condimentum enim ac tellus bibendum posuere. Proin vel turpis eget tellus hendrerit dignissim id ut nunc. Aenean facilisis tempor magna, id scelerisque orci. In hac habitasse platea dictumst. Donec ac libero laoreet, molestie ex ultricies, hendrerit leo.<br><br>Cras ligula neque, cursus ut urna et, luctus viverra est. Quisque pretium interdum elit in vehicula. Fusce tempus lacus nisl, a tincidunt odio luctus sed. Aenean ut risus eu ipsum interdum tristique at eu est. Fusce euismod est ac est condimentum, id vehicula erat efficitur. Sed eleifend ac risus et gravida. Etiam varius vehicula arcu, at bibendum orci pharetra eu. Ut iaculis convallis aliquam. Nam non fringilla turpis. Donec sodales eros vitae elit maximus interdum. Donec molestie pulvinar elit ac tristique. Praesent convallis elementum dolor ac scelerisque.<br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis elementum est ac ex malesuada tempus. In cursus aliquet mauris, nec finibus leo dictum sit amet. Nunc euismod lacus ac nisl aliquet, non ullamcorper mi auctor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam vitae rhoncus urna. Ut lectus odio, ultricies sit amet pellentesque sed, gravida sit amet odio. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed pretium, velit vitae lobortis mollis, turpis lectus semper nisi, et pharetra nisl eros eu dui. In interdum porta lorem, ut maximus lacus pretium sed. Aliquam placerat turpis at nunc consectetur, eu dapibus risus iaculis. Fusce mi massa, placerat a ullamcorper a, scelerisque et nisl. Pellentesque egestas mollis tempor. Maecenas porttitor tempor nibh eu semper. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam sed enim in neque malesuada sollicitudin. Nulla venenatis risus lectus, a maximus ex semper vitae.<br><br>Sed eu enim maximus dui elementum iaculis a sit amet nibh. In a neque eu leo dapibus sagittis vel a ligula. Integer quis velit leo. Nullam in urna libero. Donec interdum, nisi vel cursus pulvinar, ex est iaculis justo, faucibus fermentum odio massa eu ligula. Donec at mauris tincidunt, consequat sem in, malesuada ipsum. Donec vehicula est vitae nunc euismod, vitae mattis arcu pretium.<br><br>Proin mattis ipsum sit amet mi auctor, vel auctor odio malesuada. In dictum eros et sem vestibulum, eu aliquet ex auctor. Integer mattis auctor dui, non pretium mi. Sed consequat magna vel dui fermentum, in placerat quam tincidunt. Maecenas cursus at mauris eget commodo. Nam convallis erat non sapien tincidunt, sed luctus tellus molestie. Ut pharetra dolor vel tellus vestibulum, sed elementum est posuere.</div> 
 
\t \t \t <span class = "col-xs-2"></span> 
 
\t \t </div> 
 
\t </div> 
 

 
\t <script src="http://maxcdn.bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 
    </body> 
 
</html>

回答

0

我對您的代碼進行了一些更改,並創建了一個JSFiddle

首先,您需要一個z-index,因爲「歡迎」包含您的幻燈片按鈕。 如果你的元素有absolute, fixed or relative檢查this Page的更多相關信息一position屬性的z-index屬性不會只工作:

第二件事是你使用jQuery來animate.nav_ul_small這隻會觸發第一次單擊按鈕。所以你沒有選擇再次關閉菜單。 在這裏,我用JQuerys .slideToggle()也可以使用.toggle()

我也做了更簡單的例子,我刪除了大部分不必要的內容,以便更容易理解。

這裏是easy Example

0

你應該z-index的屬性添加到您的菜單按鈕。增加一些類到它,例如:

<button id = "menu" class="menu-btn">Menu</button> 

,並在其後添加下面的CSS:

.menu-btn{ 
    position:relative; 
    z-index: 1; 
} 
0

原因是你的「菜單」按鈕,是不是現在點擊因「歡迎」頁面標題與它重疊(位置:絕對;)。所以首先,您需要將「菜單」按鈕置於頂層以使其可點擊。 (使位置:絕對; z-index:3)。您的JS功能沒有任何問題。

更改您的CSS代碼,如下所述。

#menu { 
position: absolute; 
z-index: 3; 
} 

@media only screen and (max-width: 940px) { 
.head_small { 
    display: block; 
} 
}