我编写了一个简单的自定义部分,在Chrome和Safari中运作效果很好,但是在Firefox中什么也没有发生...
做什么:
滚动停止时,它会检查每个秘密的方向和位置...如果部分的顶部在某个范围内,则输入页面的顶部或底部。(还检查了滚动说明)。此外,它是固定标头的高度。就像我说的那样,在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));
}
});
});
在这里找到答案...动画卷轴不在firefox中工作
firefox将溢出置于HTML级别,除非特定样式的行为不同。
要在Firefox中工作,请使用
$('body,html').animate( ... );