我正在尝试使它的导航栏“隐藏”(通过动画)(当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
不是函数。同样,如注释中所述,scroll
与mousewheel
不同。尝试这个:
$(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);
}
});