请教js如何判断某个对象是否出现在窗口里了?js如何判断某个对象是否出现在窗口里了?比如一个页面有很多行,在页面的最下端有个对象A,需要拖动scroll才能看到。那么如何判断对象A已出现在了当前窗口里了?拖动scroll的判断我知道
    $(window).scroll(function () {
        // console.log('scroll...');
    });

解决方案 »

  1.   

    ...这个..你用的jquery吗? 有个方法:1. 检查element的display是否为none; visibility是否为hidden;
    2. $(element).offset().left $(elem).offset().top获取相对的左上角坐标.
    3. 已经知道scroll的方法, 便结合起来做简单的加减运算即可
      

  2.   

    楼主什么意思呢?拖动滚动条时,判断对象A 在可见区域?你判断这个要做什么呢?  如果要判断,可以根据坐标来判断!//取得HTML控件绝对位置
    function getAbsPoint (e)
    {
        var x = e.offsetLeft;
        var y = e.offsetTop;
        while(e = e.offsetParent)
        {
            x += e.offsetLeft;
            y += e.offsetTop;
        }
        return {'x': x, 'y': y};
    };/********************
     * 取窗口可视范围的高度 
     *******************/
     function  getClientHeight(doc)
    {
         doc=doc||document;
         return (navigator.userAgent.toLowerCase().indexOf('opera') != -1)?doc.body.clientHeight:doc.documentElement.clientHeight;         
    };
    /********************
     * 取窗口可视范围的宽度 
     *******************/
     function  getClientWidth()

       return (navigator.userAgent.toLowerCase().indexOf('opera') != -1)?document.body.clientWidth:document.documentElement.clientWidth;  
    };
    /********************
     * 取窗口滚动条滚动高度 
     ******************/
     function getScrollTop()
    {
       return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop ;
    };
       if(window.addEventListener){
                   window.addEventListener('scroll', function(e){ checkPoint(); },false); 
                  
              }else{
                   window.attachEvent('onscroll',function(){  checkPoint(); ); });      
             } 
    var obj;// 要验证的空间
    var p;
    function  checkPoint(){
    p=p||getAbsPoint(obj);
    if(getClientHeight()+getScrollTop <= p.y)// 只判断了垂直方向,如果有水平滚动条,还要考虑水平方向,你自己加
    {
    alert("不在可见区域");
    }else{
    alert("在可见区域");
    }}
      

  3.   

    呵呵,搞定<!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">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript">
    $(function(){
    $(window).scroll(function () {
    a1=$(this).scrollTop();
    a2=$('#t1').offset().top;
      console.log(a2,a1,a2-a1);
    });
      
    });
    </script>
    </head><body><br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <p id='t1'>abc</p>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/></body>
    </html>
      

  4.   

    我看到过这么一种方法页面的前半部分是网页内容,下部是对内容的相关评论某些人查看网页时不一定会去查看评论也就是说在后台,不一定要在生成页面时同时生成评论数据当页面拖动到下半部分时,再去调评论的数据这样来节省服务器资源(数据库查询cpu资源、网络带宽等等)当然相对的要消耗开发者的脑力、时间及服务器的某一时刻的最大连接数