javascript - 无论如何,Jquery 在 Google Chrome 中都不会动画

标签 javascript jquery google-chrome

我的jquery代码获得了“点击”功能,但没有动画,它只是“跳跃”而没有动画。已经为此苦苦挣扎了几个小时。

Jquery代码

$( document ).ready(function() {


// Navigation

  $('a[href^="#"]').on('click',function (e) {
  e.preventDefault();

  var target = this.hash;
  var $target = $(target);

  $('html, body').stop().animate({
      'scrollTop': $target.offset().top
  }, 5, 'swing', function () {
      window.location.hash = target;
         });
     });
  });

HTML 代码

        <!-- Content -->
<div class="slideBg" id="slideBg">
       <!-- NAVBAR -->
       <div class="row header">
        <nav class="navbar navbar-default navbar-fixed-top col-md-8 col-md-offset-2" role="navigation">
          <div class="container-fluid">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header ">
              <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
            </div>

            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
              <ul class="nav navbar-nav menu col-xs-12 col-xs-offset-6 ol-md-12 col-md-offset-6 col-lg-12 col-lg-offset-6">
                <li><a  href="#slideBg"><img class="menuImage" src="img/Slide1/Header/menu/mugIcon.png" alt=""><span class="menuItem">AVALEHT</span></a></li>
                <li><a  href="#slide2"><img class="menuImage" src="img/Slide1/Header/menu/menuIcon.png" alt=""><span class="menuItem">MENÜÜ</span></a></li>
                <li><a  href="#slide3"><img class="menuImage" src="img/Slide1/Header/menu/locationIcon.png" alt=""><span class="menuItem">ASUKOHT</span></a></li>
                <li><a class="" href="#slide4"><img class="menuImage" src="img/Slide1/Header/menu/meistIcon.png" alt=""><span class="menuItem">MEIST</span></a></li>
              </ul>
            </div><!-- /.navbar-collapse -->
          </div><!-- /.container-fluid -->
        </nav>

      </div>
      <!-- /NAVBAR -->
      <div class="slide1" id="slide1">
       <img class="s1Logo helper" src="img/Slide1/Logo/logo.png" alt="">
       <div class="nool"></div>
     </div>
   </div>



    <div class="slide2" id="slide2">
         <ul class="sideMenu">
          <li id="ahjukoogid" class="sMenuItem dashed">Ahjukoogid</li>
          <li id="magusadAmpsud" class="sMenuItem dashed">Magusad Ampsud</li>
          <li id="plaadikoogid" class="sMenuItem dashed">Plaadikoogid</li>
          <li id="soolasedAmpsud" class="sMenuItem dashed">Soolased Ampsud</li>
          <li id="tordid" class="sMenuItem dashed">Tordid</li>
          <li id="tordiloigud" class="sMenuItem dashed">Tordilõigud</li>
          <li id="tryhvlid" class="sMenuItem dashed">Trühvlid</li>
          <li id="quiche" class="sMenuItem dashed">Quiche</li>
        </ul>

    <div class="tryhvlid">
      <!-- Nimed ja Hinnad -->
    </div>
    <div class="nool"></div>
  </div>



     <div class="slide3" id="slide3">
    asd
           <div class="nool"></div>
         </div>

           <div class="slide4" id="slide4">
    asd
           <div class="nool"></div>
         </div>

我尝试过多种方法。尝试了不同的方法来获得动画效果。我还测试了 document.ready 函数是否带有警报运行,确实如此。我检查了 jquery 是否获得了点击功能,确实如此。一切似乎都正常,但只是动画或滚动不流畅。

最佳答案

这是因为在动画的 duration 参数中,您传递的 5 被解释为 5 毫秒。如果您想要 5 秒的动画,请尝试使用 5000 之类的值。

 $('html, body').stop().animate({
      'scrollTop': $target.offset().top
  }, 5000, 'swing', function () {
      window.location.hash = target;
      });
   });
});

编辑

Apparently this is a known issue. jQuery's animate() doesn't play nice in Chrome when setting the x-overflow property of html/body to hidden. Instead it ends up skipping the animation altogether. See this thread for more information.

关于javascript - 无论如何,Jquery 在 Google Chrome 中都不会动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36219761/

相关文章:

javascript - 链接到从 SVG 生成的下载文件

google-chrome - Chrome 上的 IndexedDB 刷新到磁盘

angularjs - Chrome 扩展hint.js 和 ngHintModules

javascript - 无法清除 Angular 4 中粘贴文本中的空格

javascript - 如何通过ajax调用获取返回值?

javascript - 使用 jQuery 数据表显示高级 JSON 数组的问题

javascript - 如何仅使用 Javascript 动态创建带有上一个和下一个按钮的图像-视频缩略图 slider ?

javascript - 根据服务器响应设置复选框

javascript - Google 电子钱包数字商品未加载结帐页面

javascript - 使用 ng-repeat 在 Angular 选项卡中使用 jQuery 插件的多个实例