我正在运行滚动事件,触发TweenMax动画,而且我注意到,尽管Chrome在外观上很不错,但在Chrome上看起来不错, Firefox浏览器。有没有人有关于如何尽可能有效地处理这个滚动事件的建议?另外,有什么关于Firefox的渲染,我不知道这可能是造成这种情况?任何线索将不胜感激!JavaScript:处理事件的有效方法(Firefox专用)
的要点是我在我的页面上寻找名为“客户”的容器,每个容器包含三个单独的“客户”元素。当匹配“customers”的div滚动到视图中时,触发TweenMax动画,并添加一个名为“animated”的类,以防止元素随后重新动画。
这里是基本论证小提琴: http://jsfiddle.net/epp37jsq/
编辑
为了澄清,小提琴只能证明我的动画功能的行为。由于文件大小非常小,所以滞后不会发生。在实际的网站上,我有11个3个“客户”组。图像是相同的,但拉了33次。将来,图像将是唯一的。实质上,这11组中的每一组都要调用动画。我正在寻找如何提高我的网页速度的建议。
而且我的代码:
var scrollTimer = null;
$(window).scroll(function() {
if (scrollTimer) {
clearTimeout(scrollTimer); // clear any previous pending timer
}
scrollTimer = setTimeout(handleScroll, 500); // set new timer
console.log("fired!");
});
function handleScroll() {
scrollTimer = null;
$('.customers').each(function() {
if (!$(this).hasClass('animated')) {
if ($(this).isOnScreen(0.45, 0.45)) {
TweenMax.staggerFromTo($(this).find('.customer'), 0.3, {
y: 50,
opacity: 0
}, {
y: 0,
opacity: 1,
ease: Power2.easeOut
}, 0.15);
$(this).addClass('animated');
}
}
});
}
我不能看到你的jsFiddle与FireFox的任何滞后。它似乎与Chrome一样运行。你在什么操作系统上? –
我正在编辑我的帖子,提到小提琴只演示行为。实际网站在Firefox上滞后。 – amoeboar
你试过了lagSmoothing()http:// greensock。com/docs /#/ HTML5/GSAP/TweenMax/static_lagSmoothing/ –