我正在开发一个JavaScript插件,但它有一个lagg,我不知道解决这个问题的方法。我尝试了几个小时的多件事,但都没有奏效。我还在网上搜索了一个相同的bugg,但又没有成功。
所以,这是我的代码的一部分:
affectedElements = $("*[al-affected]");
// loop through every element and check by affected attribute
affectedElements.css('position', 'absolute')
.css('display', 'none');
$(document).on('scroll', function() {
for(var i=0; i<affectedElements.length; i++) {
element = affectedElements[i];
elementTopOffset = $(element).offset().top;
windowTop = $(document).scrollTop();
windowBottom = windowTop + $(window).height();
console.log(elementTopOffset +", "+ windowTop +", "+ windowBottom);
// When I put the function showElement here, then I got the right elementTopOffset value
// showElement();
if(elementTopOffset > windowTop &&
elementTopOffset < windowBottom) {
// When I put the function showElement inside the if function, the value of the elementTopOffset changes
showElement();
}
}
});
// Set optionals and shows the element
function showElement() {
effect = ($(element).attr('al-effect')) ? $(element).attr('al-effect') : 'fade';
duration = parseInt($(element).attr('al-duration'));
delay = ($(element).attr('al-delay')) ? $(element).attr('al-delay') : 0;
$(element).delay(delay).show(effect, false, duration, false);
}
我希望这很清楚。