使用Jquery监听页面到达底部($(window).height() 文档高度问题)

1,199 阅读1分钟

当我们出现滚动条时,把滚动条下拉就可以产生事件,这样我们就可以在事件中添加需要加载的网页内容,许多网站都是这样做用来节省图片服务器压力。 实现方法:

    // 判断页面滚动到底部
    $(window).scroll(function () {
        //已经滚动到上面的页面高度
        var scrollTop = $(window).scrollTop();
        //页面高度
        var scrollHeight = $(document).height();
        //浏览器窗口高度
        var windowHeight = $(window).height();
        //此处是滚动条到底部时候触发的事件,在这里写要加载的数据,或者是拉动滚动条的操作
        if (scrollTop + windowHeight >= scrollHeight) {
            $(".to-top").css("visibility", "visible");
        } else {
            $(".to-top").css("visibility", "hidden");
        }
    });

但今天做着做着发现在ie上面运行正常,在google和火狐上面跑就不正常了。因为一直用的ie测试的,所以,不知道当时改了哪里会引出这个错误,错误出现情况:无论滚动条怎么动都会触发这个事件

后面打印出这两个值:发现这个$(document).height()$(window).height() 这两个值在 google 和 firefox里的值竟然是一样的,在ie中却又不同,也就是不管滚动条怎么动,这个判断条件始终成立,所以出现了ie上没事,其他浏览器出现不正确的情况。

解决办法: 头部加上以下代码:

<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">