【问题标题】:Smooth scroll not working, only after switching devices in Chrome Dev Tools平滑滚动不起作用,仅在 Chrome 开发工具中切换设备后
【发布时间】:2017-07-14 16:41:31
【问题描述】:

我有一个垂直导航栏,可以在手机上使用 .on(click, function) 和 .slideToggle() jQuery 方法打开和关闭,但在平板电脑和桌面上变成水平导航栏。导航栏包含定位同一页面内元素的锚元素。同时,我想添加一个带有 animate() 方法的 jQuery click() 函数,以在单击链接时创建平滑滚动。 这是我的问题。我在 JsBin 中编码,当我想在输出视图(默认桌面大小)中查看结果时,平滑滚动不起作用。然后我打开 Chrome 开发者工具并切换到设备工具栏中的移动视图,导航栏切换并且平滑滚动完美运行。切换回桌面大小,平滑滚动突然也可以正常工作了。关闭 Chrome 开发工具,平滑滚动完美运行。导致平滑滚动在第一次尝试时不起作用的问题可能是什么?

首先我尝试将这两个功能分开,这次导航栏无法在移动设备上打开,但平滑滚动在平板电脑和台式机上都可以正常工作。我第二次将 click() 和 animate() 函数嵌入到负责切换的 .on(click, function) 中,正如您在代码中看到的那样。我在 Chrome 和 Mozilla Firefox 中也遇到了同样的情况。

/* function to toggle the navigation bar
and make the scroll of links smooth */

function contentHide() {
  $('.toggle-button').on('click', function() {
    $('.nav').slideToggle(300);

    var $root = $('html, body');
    $('a').click(function() {
      $root.animate({
        scrollTop: $($.attr(this, 'href')).offset().top
      }, 900);
      return false;
    });

  });
}

$(document).ready(contentHide);
.nav {
  display: none;
}

@media (min-width: 768px) {

  .nav {
    display: block;
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<navbar>
      <img class="logo" src="https://github.com/AnikoBorosova/Exercise-Flexbox-festival-website/blob/master/logo_placeholder.png?raw=true" alt="logo">
      <a class="toggle-button"><i class="fa fa-bars fa-2x" aria-hidden="true"></i></a>
      <div class="nav">
        <a href="#C1">Home</a>
        <a href="#C2">About us</a>
        <a href="#C3">Program</a>
        <a href="#C4">Partners</a>
        <a href="#C5">Contact</a>
      </div>
    </navbar>

这是我整个代码的 jsBin 链接:https://jsbin.com/zoximog/24/edit?html,css,js 提前致谢!

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    你可以用漂亮的滚动https://alvarotrigo.com/fullPage/ 它会帮助您软滚动到特定页面。

    【讨论】:

      猜你喜欢
      • 2017-03-15
      • 2012-12-15
      • 1970-01-01
      • 2019-06-27
      • 2018-08-29
      • 2014-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多