当对象在视口中可见时执行操作

时间:2014-11-11 23:43:54

标签: javascript

我的页面上有一个div,我想在观看者向下滚动时改变背景颜色。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

上述评论者是对的。你应该先尝试一下,当你遇到困难时,社区会帮你解开。也就是说,这是一个快速解决问题的方法。

$(document).ready(function(){
    var offsetTop = $('#test').offset().top, //offset from top of element - element has id of 'test'
        finalOffset = offsetTop - document.documentElement.clientHeight; //screen size
    $(window).on('scroll',function(){
        var whereAmI = $(document).scrollTop();
        if(whereAmI >= offsetTop){
            console.log("i've arrived at the destination");
        }
    })
})

请注意,上述代码会在您的要求之后的每个点执行console.log()(意味着从那里向下)。如果您希望执行只发生一次,您需要稍微调整代码。还有一点需要注意 - 如果您要在小提琴中进行检查,则需要调整document.documentElement.clientHeight以适应iframe。所以在本地机器上进行测试。

答案 1 :(得分:1)

我会使用CSS3这样的东西......

var elemTop = $('div').offset().top;
  $(window).scroll(function() {
     if($(this).scrollTop() == elemTop) {
       $('div').removeClass('hidden');
   }
});