jQuery平滑滚动-仅滚动一次

jQuery平滑滚动-仅滚动一次,jquery,preventdefault,smooth-scrolling,Jquery,Preventdefault,Smooth Scrolling,我对jQuery平滑滚动有问题。我有一个onepager,我想在上面通过锚滚动到不同的div。不允许手动从一个DIV滚动到另一个DIV。为了实现这一点,我禁用了整个页面的滚动,但在单击菜单按钮的同时,在给定的时间段内将其设置回正常状态 它的工作原理是这样的:一旦你进入网站,你就会看到我的第一个DIV的内容。当你点击菜单中的一个链接时,你会看到一个简短的动画,其中一个图像离开DIV,然后页面滚动到下一个DIV。在第二个DIV中,一个图像进入动画,文本进入。第一次工作时,但当我想在另一个链接上点击滚

我对jQuery平滑滚动有问题。我有一个onepager,我想在上面通过锚滚动到不同的div。不允许手动从一个DIV滚动到另一个DIV。为了实现这一点,我禁用了整个页面的滚动,但在单击菜单按钮的同时,在给定的时间段内将其设置回正常状态

它的工作原理是这样的:一旦你进入网站,你就会看到我的第一个DIV的内容。当你点击菜单中的一个链接时,你会看到一个简短的动画,其中一个图像离开DIV,然后页面滚动到下一个DIV。在第二个DIV中,一个图像进入动画,文本进入。第一次工作时,但当我想在另一个链接上点击滚动工作,但在右分区一秒钟后,页面跳回顶部(到第一分区)

我已经尝试用
event.preventDefault()解决这个问题
返回false
,但它仍然跳到顶部

有人能帮我吗

var scrollPosition=[
self.pageXOffset | | | document.documentElement.scrollLeft | | | document.body.scrollLeft,
self.pageYOffset | | | document.documentElement.scrollTop | | | document.body.scrollTop
];
var html=jQuery('html,body');//将此应用于身体会更有意义,但IE7不会有此功能
html.data('scroll-position',scrollPosition);
html.data('previous-overflow',html.css('overflow');
css('overflow','hidden');
scrollTo(scrollPosition[0],scrollPosition[1]);
$(函数(){
$('a[href*=#]:非([href=#])。在('click',函数(事件){
event.preventDefault();
var html=jQuery('html,body');
var scrollPosition=html.data('scroll-position');
css('overflow',html.data('previous-overflow');
scrollTo(scrollPosition[0],scrollPosition[1])
var href=$(this.attr('href');
setTimeout(函数(){
$('html,body').stop().animate({
scrollTop:$(href).offset().top
},1500年,即“不动产”);
}, 900);
setTimeout(函数(){
$('body').css('overflow','hidden');
$('html').css('overflow','hidden');
}, 4000);
});
});

不用提琴也很棘手,但请尝试以下方法

$(document).on('click', 'a[href*=#]:not([href=#])', function(event) {

   // code here

});

我希望这是有道理的。.on()函数的第二个参数是选择器

你能摆好小提琴吗?恐怕不行。我使用WordPress,不知道如何链接图片等等。只是本地的。