javascript - 单击菜单时覆盖(并删除边框)

标签 javascript html css twitter-bootstrap twitter-bootstrap-3

我叫 Daniel,我在做我的投资组合网站。当我点击我的汉堡包菜单时,我想要一个叠加层,这样一切都会变暗并且焦点位于菜单上。我希望它在您再次单击菜单时消失,或者单击其中一个菜单项或单击叠加层自身。 (仅适用于我的手机版本)

另外,当我在手机上打开汉堡菜单时,我有奇怪的边界线,我不知道如何删除它

目前链接到我的网站:http://20162.hosts.ma-cloud.nl/portfoliowebsite/

(最新版本尚未上线)

HTML:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta charset="UTF-8">
  <meta name="author" content="Daniel Gotz">
  <title>Daniel Gotz | Porfolio </title>
  <link href="css/bootstrap.min.css" rel="stylesheet">
  <link href="css/styles.css" rel="stylesheet">
  <link href="css/scrolling-nav.css" rel="stylesheet">
  <link href="dist/hamburgers.css" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css?family=Exo+2:600,900|Roboto" rel="stylesheet">
 </head>

<body id="page-top" data-spy="scroll" data-target=".navbar-fixed-top">

  <!-- Navigation -->   
  <section id="intro" class="intro-section">
        <nav class="navbar navbar-default" role="navigation">
        <div class="navbar-header page-scroll">
          <button class="hamburger hamburger--spin navbar-toggle visible-xs" type="button" data-toggle="collapse" data-target=".navbar-ex1-collapse"> <span class=" hamburger-box">
    <span class=" hamburger-inner"></span> </span>
          </button>
        </div>
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav right">
            <li class="hidden">
              <a class="page-scroll" href="#page-top"></a>
            </li>
            <li> <a class="page-scroll" href="#intro">Intro</a> </li>
            <li> <a class="page-scroll" href="#mijnwerk">Mijn werk</a> </li>
            <li> <a class="page-scroll" href="#overdaniel">Over Daniel</a> </li>
            <li> <a class="page-scroll" href="#contact">Contact</a> </li>
          </ul>
      </div>
    </nav>

    <div class="overlay" id="overlay"></div>


       <div class="title">
      <h1> Every mountain top is within reach if you just keep climbing</h1> </div>

      <div class="berg">
    <img src="berg.svg">


      </div>


  </section>
  <section id="mijnwerk" class="about-section"> </section>
  <section id="overdaniel" class="services-section"> </section>
  <section id="contact" class="contact-section"> </section>
  <!-- jQuery -->
  <script src="js/jquery.js"></script>
  <!-- Bootstrap Core JavaScript -->
  <script src="js/bootstrap.min.js"></script>
  <!-- Scrolling Nav JavaScript -->
  <script src="js/jquery.easing.min.js"></script>
  <script src="js/scrolling-nav.js"></script>
  <script src="js/hamburgers.js"></script>
</body>

</html>

CSS:

.overflow {
  overflow-x: hidden;
  position: relative;
}

.home {
  height: 100vh;
  width: 100vw;
  background-color: #2ecc71;
}

.mijnwerk {
  height: 100vh;
  width: 100vw;
  background-color: #27ae60;
}


.navbar-default {
  background: none;
  border-color: transparent;
    z-index: 3;  
}

.right {
  float: right;
  text-align: right;



}

.navbar-default .navbar-nav>li>a {
  font-family: 'Roboto', sans-serif;
  color: #ecf0f1;
  font-size: 14px;



}

.nav>li>a {
  padding: 15px 25px;
    border-style: none;



}

.navbar-default .navbar-nav>li>a:focus,
.navbar-default .navbar-nav>li>a:hover {
  color: #ecf0f1;
      border-style: none;

}

.navbar-default .navbar-toggle:focus,
.navbar-default .navbar-toggle:hover {
  background: none


}

.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-style: none;



}



h1 {

  font-family:  'Exo 2' , sans-serif;
  font-weight: 900;
  font-size: 37px;
  line-height: 60px;


}

.title {
  font-family: 'Exo 2', sans-serif;
  text-align: center;
  width: 350px;
  position: absolute;
  top: 45%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.berg {
    position: absolute;
    width: 100%;
    bottom: 0;
    margin: 0  0 -2px 0;

}

.overlay {
    position: fixed;
    top: 0;
    z-index: 2;
    display: none;
    overflow: auto;
    width: 100%;
    height: 100%;
    background: #333;
}

body {
    width: 100%;
    height: 100%;
}

html {
    width: 100%;
    height: 100%;
}

@media(min-width:767px) {
    .navbar {

    }

    .top-nav-collapse {
        padding: 0;
    }
}

.intro-section {
    height: 100%;
    background: #2ecc71;
    color: white;
  text-align: center;


}

.about-section {
    height: 100%;
    background: #27ae60;
}

.services-section {
    height: 100%;
    background: #3498db;
}

.contact-section {
    height: 100%;
    padding-top: 150px;
    text-align: center;
    background: #eee;
}

JS:

// Look for .hamburger
  var hamburger = document.querySelector(".hamburger");
  // On click
  hamburger.addEventListener("click", function() {

    // Toggle class "is-active"
    hamburger.classList.toggle("is-active");
    // Do something else, like open/close menu
  });

希望有人能帮我解决这些问题! :)

最佳答案

使用此配置,您只需将背景传递给菜单,关闭按钮将不会被包括在内并移除边框。

 .navbar-collapse navbar-ex1-collapse collapse in {
        background: rgba(27, 27, 62, 0.5);
    }

 .navbar-default {
    background: none;
    border: none;
    z-index: 3;
    }

关于javascript - 单击菜单时覆盖(并删除边框),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45423666/

相关文章:

javascript - 动态添加的删除按钮在点击时不起作用

html - 当它包含 & 时,你将如何制作一个有效的 URL 字符串

javascript - 引用错误 : $ is not defined

php - 如何使用 php-url 路径在 Magento CMS 页面中加载图像背景?

jquery - 如何每 X 秒使用 jQuery 更改背景图像(带淡入淡出)

javascript - ckeditor 图像对齐删除

javascript - 容器中使用的 YUI 皮肤滚动条

html - 我想设计一个容器,其中包含 3 个 div 内联持有 parent 属性(property)

javascript - 使用变量的动态数组

css - 使 flex 元素忽略子元素