为什么当向上滚动元素时y / top位置编号在此处不会改变?

时间:2015-06-03 21:44:39

标签: javascript angularjs scroll

我正致力于在Angular应用中构建无限滚动功能。一次构建一个步骤,目前我已经将滚动事件监视器附加到#tags-coltagsCol

plnkr:http://plnkr.co/edit/7OnKAGvVNXWLwN5fZqJu?p=preview

我有一些代码可以返回tagsCol的最高y值,但是当你向上滚动元素时,数字永远不会随日志一起更新,它会一直停留在118.8125

您如何获得tagsCol的移动y值?或者更好的是,检测tagsCol面板内部的底部/最后一个元素何时可见?

function getOffset(el) {
    el = el.getBoundingClientRect();
    return {
      top: el.top + window.scrollY
    }
}

var scrollingElement =  function(event) {
    console.log(tagsCol);
    var yPos = getOffset(tagsCol).top
    console.log(yPos);
};

document.getElementById('tags-col').addEventListener('scroll', scrollingElement);

enter image description here

1 个答案:

答案 0 :(得分:0)

也许这个解决方案可能适合你。

var el = document.getElementById("tags-col");
var offsetTop = el.offsetTop;

function callback() {
    if (offsetTop < window.pageYOffset) {
        // do something
    } else {
        // do something else
    }
}

if (window.addEventListener) {
    window.addEventListener("scroll", callback, false);
} else {
    window.attachEvent("onscroll", callback);
}

这有意义吗?