我希望有人能帮助我,我对这个问题有点厌烦,因为我一直在解决我试图在这个网站上实现的这种滚动行为的其他问题......正如你看到我的子菜单(在左侧)滚动时跟随窗口位置,或者您可以单击子菜单上的任何选项将触发动画,问题似乎是每次我再次单击时它都不起作用,直到我重新点击它,它会工作......
这是我的代码
变量
var startDistance = 210;
var $scrollingDiv = $("#sub-menu");
var position = $("#footer").position();
var height = $("#sub-menu").height();
var pos = position.top - (height + 460);
这是为了区别用户和动画滚动
$("body,html").bind("scroll mousedown DOMMouseScroll mousewheel keyup", function(e){
if ( e.which > 0 || e.type === "mousedown" || e.type === "mousewheel"){
if($(window).scrollTop() > startDistance && $(window).scrollTop() < pos) {
$scrollingDiv.stop().animate({
paddingTop: ($(window).scrollTop() - 75) + "px"
}, 'slow');
}
if($(window).scrollTop() == 0) {
$scrollingDiv.stop().animate({
paddingTop: 0
}, 'slow');
}
}
});
点击行为
$("#sub-menu ul li a").live('click', function(ev) {
var $anchor = $(this);
console.log($anchor.attr('href'));
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500,'easeInOutExpo', function() {
$scrollingDiv.stop().animate({
paddingTop: ($($anchor.attr('href')).offset().top - 556) + "px"
}, 'slow');
});
event.preventDefault();
});
这可能是最愚蠢的事情,但过去一个小时我一直在看我的屏幕,却无法意识到发生了什么。
编辑:我也发布了我的滚动代码行为,因为我觉得这可能是一个全球性问题,不仅与我的点击代码有关
先感谢您!