Javascript 部分快照到窗口(firefox问题)

Javascript 部分快照到窗口(firefox问题),javascript,jquery,debugging,firefox,scroll,Javascript,Jquery,Debugging,Firefox,Scroll,我已经编写了一个简单的自定义部分抓拍脚本,在chrome和safari中效果很好,但在firefox中什么都没有发生之后 它的作用是: 当滚动停止时,它会检查每个secrion的方向和位置。。。如果节的顶部在某个范围内,请转到页面顶部或底部。(滚动方向也被选中)。此外,它还说明了固定收割台的高度。就像我说的在Chrome和Safari中工作。你知道怎么了吗 $( document ).ready(function() { var animating = false; var ma

我已经编写了一个简单的自定义部分抓拍脚本,在chrome和safari中效果很好,但在firefox中什么都没有发生之后

它的作用是:

当滚动停止时,它会检查每个secrion的方向和位置。。。如果节的顶部在某个范围内,请转到页面顶部或底部。(滚动方向也被选中)。此外,它还说明了固定收割台的高度。就像我说的在Chrome和Safari中工作。你知道怎么了吗

$( document ).ready(function() {
    var animating = false;
    var mainHeader = $('#main-header');

    var items = $("section");
    var lastOffset = 0;
    var scrollDir = 'none';


    $(window).scroll(function() {
        var windowHeight = $(this).height();
        var currOffset = $(this).scrollTop();
        var headerHeight = mainHeader.outerHeight();

        if (currOffset > lastOffset) {
            scrollDir = 'down';
        } else {
            scrollDir = 'up';
        }
        lastOffset = currOffset;



        clearTimeout($.data(this, 'scrollTimer'));
        if (!animating) {
            $.data(this, 'scrollTimer', setTimeout(function() {
                items.each(function(key, value) {
                        var currentItem = $(value);
                        var sectionOffset = currentItem.offset().top;
                        var sectionDist = sectionOffset - currOffset;
                    if ( scrollDir === 'up' && sectionDist > windowHeight*0.15 && sectionDist < windowHeight ) {
                        animating = true;
                        $('body').animate( { scrollTop: sectionOffset-windowHeight + 'px' }, 250);
                        setTimeout(function() { animating = false; }, 300);
                        return false;
                    }
                    else if ( scrollDir === 'down' && sectionDist < windowHeight*0.85 && sectionDist > 0 ) {
                        animating = true;
                        $('body').animate( { scrollTop: sectionOffset-headerHeight + 'px' }, 250);
                        setTimeout(function() { animating = false; }, 300);
                        return false;
                    }
              });
            }, 200));
        }
    });
});
$(文档).ready(函数(){
var动画=假;
var mainHeader=$(“#main header”);
风险值项目=$(“部分”);
var lastOffset=0;
var scrollDir='none';
$(窗口)。滚动(函数(){
var windowHeight=$(this).height();
var currOffset=$(this.scrollTop();
var headerHeight=mainHeader.outerHeight();
如果(currOffset>lastOffset){
scrollDir='向下';
}否则{
scrollDir='up';
}
lastOffset=当前偏移量;
clearTimeout($.data(这是“滚动计时器”);
如果(!设置动画){
$.data(这是'scrollTimer',setTimeout(函数(){
项目。每个(功能(键、值){
var currentItem=$(值);
var sectionOffset=currentItem.offset().top;
var sectionDist=sectionOffset-currOffset;
如果(scrollDir=='up'&§ionDist>windowHeight*0.15&§ionDist0){
动画=真;
$('body').animate({scrollTop:sectionOffset headerHeight+'px'},250);
setTimeout(函数(){animating=false;},300);
返回false;
}
});
}, 200));
}
});
});
在这里找到了答案。。。

Firefox将溢出放在html级别,除非专门设计为不同的行为

要使其在Firefox中工作,请使用

$('body,html').animate( ... );

只是想让你知道。当使用选项
fitToSection
autoScrolling:false
as时,此功能在中可用。谢谢@Alvaro,但我确实希望在某些时间自动滚动。