我正在運行滾動事件,觸發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/ –