我得到了一个带有导航菜单的单页布局,使用#´s 进行导航。我想通过鼠标滚轮/触摸板/键盘完全禁用 scolling,因此用户需要使用菜单。使用菜单导航,应使用滚动动画。要创建我使用的滚动动画
$(document).ready(function(){
$('a[href^="#"]').on('click',function (e) {
e.preventDefault();
var target = this.hash,
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 600, 'swing', function () {
window.location.hash = target;
});
});
});
我尝试了How to programmatically disable page scrolling with jQuery中的方法,但是它们要么杀死动画(当将 noScroll 放在主体上时),要么动画行为奇怪,滚动到错误的方向然后跳转到目标页面,即使用时
$('html, body').css({
'overflow': 'hidden',
'height': '100%'
})
我还尝试混合这些代码以禁用滚动并在单击时重新启用它,然后再次禁用它,这对我不起作用,然后我又对 javascript / jquery 不太了解。有人可以提供一个可行的解决方案吗?