只有当div在页面中可见时,我才尝试启动一些动画。
这就是我所做的功能:
function startAnimations() {
if (animated_contents)
jQuery.each(animated_contents, function(index, arr) {
var item = jQuery('#' + arr[1]);
var page_id = arr[0];
setInterval(function() {
var visible_window = jQuery(window.top).height();
var top = item.offset().top - jQuery(document).scrollTop();
console.log(item + visible_window + top);
if (top < visible_window)
animateEl(arr[1], arr[2], arr[3], arr[4]);
}, 500);
})
}
它有效。问题是setInterval
必须始终运行,我担心它会合理地减少资源。有更好的方法吗?请考虑这些项目是按常规创建的,因此必须进行连续检查。感谢您的任何建议
使用$(window).scroll()并检查div的位置以运行动画。