禁用滚动但在jquery中使用锚点时保留滚动动画

时间:2013-09-13 10:58:44

标签: javascript jquery

我得到了一个带有导航菜单的单页面布局,使用#来导航。我想通过鼠标滚轮/触摸板/键盘完全禁用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放在身体上时),要么动画行为奇怪,滚动到错误的方向然后跳到目标页面,即使用< / p>

$('html, body').css({
'overflow': 'hidden',
'height': '100%'
})

我也试过混合这些代码来禁用滚动并在点击时重新设置它,然后再次禁用它,这对我不起作用,然后我再也不了解javascript / jquery。有人可以提供有效的解决方案吗?

0 个答案:

没有答案