jQuery持续检测到离顶部的DIV距离



只有当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的位置以运行动画。

最新更新