根据您滚动页面的距离来更改div

时间:2009-03-09 05:46:21

标签: javascript jquery scroll

我正在尝试根据您滚动页面的距离来更改div中的文本。我一直在修补jQuery的scrollTop和文档高度,但迄今为止未能产生预期的结果。

如何在页面上获取元素的位置,然后在滚动到元素位置后让jQuery执行某些操作?

非常感谢帮助!

2 个答案:

答案 0 :(得分:10)

Stackoverflow上有一个问题,问了类似的东西,我掀起了一个小例子来说明如何实现这一目标。我现在找不到问题,但here is the example。在此示例中,将显示一个div,直到您滚动到页面中的某个元素,此时div被隐藏。你可以改变它来实现你想要的,因为这个想法是一样的。以下是根据您的需要修改的代码:

$(document).ready(function() {
    function isScrolledIntoView(elem) {
        var docViewTop = $(window).scrollTop();
        var docViewBottom = docViewTop + $(window).height();

        var elemTop = $(elem).offset().top;
        var elemBottom = elemTop + $(elem).height();

        return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom));
    }

    var myelement = $('#formcontainer'); // the element to act on if viewable
    $(window).scroll(function() {
        if(isScrolledIntoView(myelement)) {
            // do something when element is scrolled to and viewable
        } else {
            // do something when element is not viewable
        }
    });
});

答案 1 :(得分:0)

好旧ppk from quirksmode.org可以向您展示如何找到元素的位置:“此脚本找到实际位置,因此如果您调整页面大小并再次运行脚本,则指向正确的新位置元素。“