首页 > 解决方案 > 带有 html 移动标题的导航抽屉

问题描述

$(document).ready(function(){

    $(window).scroll(function(){
        if( $(this).scrollTop() > 0 ){
            $('.header').addClass('header2');
        } else {
            $('.header').removeClass('header2');
        }
    });

});

我对 Web 开发领域真的很陌生,我正在尝试制作一个带有移动标题的导航抽屉。当您向下滚动时,激活导航栏的按钮将保留在标题的顶部,您可以点击它。在我的代码中,这个按钮看起来不错,但它无法激活导航栏。由于某些未知原因,当在标题中包含按钮时,它会停止激活导航栏。欢迎您给我任何帮助。

这是我的代码:

* {margin:0; padding:0;}

body{background:#fffffA;}

header {
    width:100%;
    overflow: hidden;
    background:#252932;
    margin-bottom:20px;
}

.wrapper {
    width:90%;
    max-width:1000px;
    margin:auto;
    overflow:hidden;
}

header .logo {
    color:#f2f2f2;
    font-size:50px;
    font-family:"Nexa";
    line-height:200px;
    float:left;
}

header nav {
    float:right;
    line-height:200px;
}

header nav a {
    display:inline-block;
    color:#fff;
    padding:10px 20px;
    text-decoration:none;
    line-height:normal;
    font-size:20px;
    font-family:"Nexa";
    font-weight:bold;
    -webkit-transition: all 500ms ease;
    -moz-transition: all 500ms ease;
    -ms-transition: all 500ms ease;
    -o-transition: all 500ms ease;
    transition: all 500ms ease;
}

header nav a:hover {
    background:#F56F3A;
    border-radius:50px;
}

.header2 {
    position: fixed;
    height:100px;

}

.header2 .logo {
    line-height:100px;
    font-size:30px;
}

.header2 nav {
    line-height:100px;
}

.contenido p {
    margin-bottom:1em;
}

.contenido h3 {
    display:block;
    padding:20px;
    color:#fff;
    text-align:center;
    background:#F56F3A;
    margin-bottom:1em;
}

@media screen and (max-width: 1025px) {
    header .logo,
    header nav {
        width:100%;
        text-align:center;
        line-height:100px;
    }

    .header2 {
        height:auto;
    }

    .header2 .logo{
        line-height:50px;
    }

    .header2 nav {
        line-height:50px;
    }
}


body {
    position: relative;
    min-height: 100vh;
    font-family: 'Roboto';
    background-color:#fafafa;
  }
  
  .OpenMenuButton { cursor: pointer; }
  
  .DrawerMenu {
    position: fixed;
    z-index: 99;
    width: 100vw;
    height: 100vh;
    top: 0;
    bottom: 0;
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
    -webkit-transition: -webkit-transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1);
    transition: -webkit-transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1);
    transition: transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1);
    transition: transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1), -webkit-transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1);
    display: -ms-grid;
    display: grid;
    grid-template-areas: 'MENU OVERLAY';
    -ms-grid-columns: 15fr 5fr;
    grid-template-columns: 15fr 5fr
  }
   @media (min-width: 30em) {
  
  .DrawerMenu {
    -ms-grid-columns: 5fr 10fr;
    grid-template-columns: 5fr 10fr;
  }
  }
  
  #DrawerMenuTrigger:checked ~ .DrawerMenu {
    -webkit-transform: none;
    transform: none;
  }
  
  .MenuContainer {
    grid-area: 'MENU';
    background-color: rgb(18, 8, 109);
    box-sizing: border-box;
    padding: 24px;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
  
  .Menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: column wrap;
    flex-flow: column wrap
  }
  
  .Menu a {
    text-decoration: none;
    color: #FFFFFF;
    display: block;
    padding: 16px 0;
  }
  
  .Menu a + a { border-top: 1px solid rgba(255, 255, 255, 0.1); }
  
  .MenuOverlay { grid-area: 'OVERLAY'; }
  
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Title</title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous"> <!-- ACA SE IMPORTA EL CSS DE BOOSTRAP PARA HACERLO MÁS LINDO EN EL DEFAULT-->
<link rel="stylesheet" href="estilos.css">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">  
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="header.js"></script>
</head>

<body>

 
<header class="header">

  
  <div class="wrapper">

    <div class="logo">Name</div>
    
    <nav>
      
      <a href="#" >
        <label for="DrawerMenuTrigger" class="OpenMenuButton" >
          <image src = "images.ico"></image>
        </label> 
        <input type="checkbox" id="DrawerMenuTrigger"  onclick= f() hidden>
      
    </a>
    </nav>
  </div>
</header>
<section class="contenido wrapper">
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
     tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
     quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
     consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
     cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
     proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
      tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
      quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
      consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
      cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
      proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
     tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
     quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
     consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
     cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
     proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
      tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
      quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
      consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
      cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
      proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
     tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
     quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
     consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
     cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
     proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
      tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
      quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
      consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
      cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
      proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
     tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
     quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
     consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
     cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
     proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
      tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
      quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
      consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
      cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
      proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
     tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
     quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
     consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
     cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
     proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
      tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
      quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
      consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
      cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
      proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

</section>


<aside class="DrawerMenu" > 
  <div class="MenuContainer" > 
    <nav class="Menu" > 
      <a><image src = "images.png"></image></a>
      <a>User</a>
      <a href="#">Item 1</a> 
      <a href="#">Item 2</a> 
      <a href="#">Item 3</a> 
      <a href="#">Item 4</a> 
    </nav>
  </div>
  <label for="DrawerMenuTrigger" class="MenuOverlay"></label> 
</aside>
</body>
</html>

在此处输入图像描述

标签: javascripthtmlcss

解决方案


推荐阅读