当div距离页面顶部一定距离时,如何运行脚本?

时间:2013-09-15 22:42:40

标签: jquery

我有一个几乎可以运作的脚本。当div距离页面顶部一定距离时,我正在尝试执行javascript函数。当用户滚动页面时,div将改变位置,我想计算它与顶部的距离。这就是我所拥有的:

$(window).scroll(function () {
    var myDiv = $("#myDiv").offset().top;
    var height = $(window).height();
    if(myDiv < height)
    {
        myScript();
    }
});

问题是这个脚本只在我在页面上一直向下滚动后运行。即使我写道:

也会发生这种情况
var myDiv = parseInt($("#myDiv").offset().top) - 300;

似乎myDiv < height并没有真正起作用。我做错了什么?

2 个答案:

答案 0 :(得分:0)

尝试类似

的内容
$(window).scroll(function () {
    if ($("#myDiv").scrollTop() < height ) {
        myFunction();
    }
});

答案 1 :(得分:0)

 $(window).scroll(function () {
     var scrollTop = document.body.scrollTop;
     var offsetTop = $("#myDiv").offset().top;
     var offsetHeight = $("#myDiv").height();

     if(scrollTop + $(window).height() >= offsetTop && scrollTop < offsetTop + offsetHeight) {
         myScript();
     }
 });

基本上...

如果滚动位置+窗口的高度大于或等于div的顶部,并且文档的滚动位置大于div的底部,则触发myScript。

如果div可见,则应该触发myScript。

我使用了document.body.scrollTop,因为如果我使用$(“body”)。scrollTop(),Firefox总会返回0.如果你愿意,你可以使用$(“body”)。scrollTop()|| $( “HTML”)。scrollTop的()。