javascript - 单击菜单按钮后防止转到页面顶部

标签 javascript jquery css twitter-bootstrap-3

我有一个固定的菜单按钮,它在单击时显示菜单项。问题是当单击 时,它总是在菜单打开之前转到页面顶部。我尝试了 width e.preventDefault();e.stopImmediatePropagation() 但没有任何反应。我认为应该有一种方法可以检测滚动位置,使菜单 div 保持在页面上打开的相同位置。另外,请注意,我将 overflow:hidden 应用到正文和 HTML 以在单击菜单按钮时保持它们固定。

$(".nav-mobile-toggle").click(function() {
  $("html,body").css("overflow", "hidden");
  event.preventDefault();
});
body {
  background: #fff;
  font-size: 22px;
  line-height: 28.6px;
  color: #005153;
  overflow: hidden !important;
}

html,
body {
  height: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="nav-mobile-toggle pt8" data-modal-id data-notification-link="nav-slide">
  <div class="btn--menu">
    <span class="h6 nombre">Menu</span>
    <i class="icon-Align-Right icon icon--sm"></i>
  </div>
</div>
<div class="notification pos-right pos-top nav-slide col-sm-4 col-xs-12 bg--primary-1" data-notification-link="nav-slide" data-animation="from-right" id="notification">
  <div class="nav-slide__content">
    <div class="pt104 text-left">
      <ul class="menu">
        <li>
          <a href="/">
            <span class="h3">Inicio</span>
          </a>
        </li>
        <li>
          <a href="/el-despacho.php">
            <span class="h3">El despacho</span>
          </a>
        </li>
        <li>
          <a href="/quienes-somos.php">
            <span class="h3">Quiénes somos</span>
          </a>
        </li>
        <li>
          <a href="/que-nos-diferencia.php">
            <span class="h3">Qué nos diferencia</span>
          </a>
        </li>
        <li>
          <a href="/lo-que-opinan.php">
            <span class="h3">Qué opinan de nosotros</span>
          </a>
        </li>
        <li>
          <a href="/areas-practica.php">
            <span class="h3">Áreas de práctica</span>
          </a>
        </li>
        <li>
          <a href="/blog">
            <span class="h3">Blog</span>
          </a>
        </li>
        <li>
          <a href="/contacto.php">
            <span class="h3">Contacta con nosotros</span>
          </a>
        </li>
      </ul>
    </div>
    <div class="pos-absolute pos-bottom menu-footer text-right">
      <p class="tel">
        <a href="tel:123456789" style="text-decoration:none;">123 456 789</a>
      </p>
      <p class="mail">
        <a href="mailto:info@example.com" style="text-decoration:none;">info@example.com</a>
      </p>
    </div>
  </div>
</div>

最佳答案

在函数中添加event参数:

$(".nav-mobile-toggle").click(function(event){
      event.preventDefault();
    });

关于javascript - 单击菜单按钮后防止转到页面顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55141294/

相关文章:

javascript - 在python中填写表单并按下javascript按钮

javascript - JSON.parse 在有效 Json 上失败。已转义控制字符。如果

javascript - 通过转换 : Rotate in Chrome 模糊文本

iphone - IOS 在滚动之前无法单击固定页脚中的链接?

由于数组语法,Javascript 警报可能无法正常工作

javascript - JQuery UI 对话框文本区域

jquery - 背景尺寸 : Cover - Firefox issue

javascript - 使用 Jquery 创建新的表格行并将具有动态 id 的按钮添加到表格单元格

javascript - 非引导可折叠导航栏

javascript - 奇怪的 Bootstrap Carousel Issue..first slide 最初没有加载