我正在尝试使它的导航栏“隐藏”(通过动画)(当wheelDelta为负值时(向下滚动)),当wheelDelta为正(向上滚动)时,导航栏重新出现(动画)。

这是我的JavaScript代码:



/* Scrolling Animation */
    $(document).scroll(function () {
      var evt = window.event();
      var delta = evt.wheelDelta;

      if ( delta >= 120 ){
          $('.nav').animate({ top: '-65px' }, 200);
          $('body').animate({ top: '0px' }, 200);
      }
      else if ( delta <= -120 ){
          $('.nav').animate({ top: '0px' }, 200);
          $('body').animate({ top: '65px' }, 200);
      }

    });





但是,它不起作用。我已经进行了一些故障排除,并且发现问题在于未定义delta变量。因此,我认为我只是不知道如何正确获取wheelDelta属性。

有人可以向我展示如何获取wheelDelta属性值并将其存储在变量中的示例吗?

谢谢。

最佳答案

window.event不是函数。同样,如注释中所述,scrollmousewheel不同。尝试这个:

   $(document).on('mousewheel',function (evt) {
      var delta = evt.originalEvent.wheelDelta;
      console.log('scroll ' + delta, evt);
      if ( delta >= 120 ){
          $('.nav').animate({ top: '-65px' }, 200);
          $('body').animate({ top: '0px' }, 200);
      }
      else if ( delta <= -120 ){
          $('.nav').animate({ top: '0px' }, 200);
          $('body').animate({ top: '65px' }, 200);
      }
    });

09-25 20:05