javascript - 当元素进入窗口的 View 时执行函数

标签 javascript jquery

向下滚动时,如何在元素进入窗口 View 时立即对元素执行函数?

最佳答案

我不妨把它贴在这里作为答案:

function elementInView($elem, vps, vpe) {
    var elempos = $elem.position(); 
    var pagestart = elempos.top + vps;
    var pageend = elempos.top + vps + $elem.height();
    var offset = $elem.height() - Math.max(0,vps-pagestart) - Math.max(0,pageend-vpe);    
    return (vpe > 0 && offset > -200); 
}

$('#container').bind('scroll', function() {
    var $container = $(this);
    var vps = $container.scrollTop();
    var vpe = vps + $container.height();

    $('li', '#container').each(function() {
        var $this = $(this);
        if (elementInView($this,vps,vpe)) {
            // $this is now in view
        }
    });
});

我意识到这有一些性能问题,可以优化,但这应该是一个开始。

关于javascript - 当元素进入窗口的 View 时执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2495615/

相关文章:

javascript - 如何在给定新的 Firebase 响应的情况下更新 HTML 中的类?

javascript - 即兴 - 简单地将变量传递给 URL

javascript - AJAX 以错误的顺序返回

javascript - 有效获取字符串?

javascript - 如何使用 jquery 正确创建文本字段

javascript - 如何从多个类中获取数据属性值

javascript - 使用 JS 在链接中插入附近输入的值?

javascript - 属性 <Object> 包含无效的嵌套实体。/Firebase

javascript - 导出时 React.Component 是默认扩展吗?

javascript - JavaScript 中的 main() 函数?