>  Q&A  >  본문

javascript - js判断进入可视区域

var obj = $('.countdown').get(0);
var top = obj.getBoundingClientRect().top; //元素顶端到可见区域顶端的距离
console.log(obj)
var se = document.documentElement.clientHeight; //浏览器可见区域高度。
if(top <= se ) {
//code
}

百度到这段代码,把事件加进去没法触发,

请问还有哪些方法判断到了可视区触发事件;

迷茫迷茫2767일 전689

모든 응답(3)나는 대답할 것이다

  • 黄舟

    黄舟2017-04-11 11:31:08

    感觉代码没补全,只能表达所理解的意思了
    条件不够,如果节点在文档下面,刚好大于窗口高度,就看不见了,当滚动的时候,还需要获取滚动条的高度,然后滚动条的高度加窗口的高度大于节点的偏移距离,就表示节点可以看见了。
    窗口高度+滚动条高度>节点偏移的高度就可以了。

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-11 11:31:08

    $(window).on("scroll",function(){
        console.log(( $(".box").offset().top - $(this).scrollTop() ) > $(this).height());
    });

    进入可视区域就返回true

    회신하다
    0
  • PHPz

    PHPz2017-04-11 11:31:08

    <!--css-->
    img {
                display: block;
                margin-bottom: 50px;
                width: 400px;
                height: 400px;
            }
            #imgs{
                border: 2px solid #ff0000;
            }
    <!--html代码-->
    <p class="lazy">
    <img src="" src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="" src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="" src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="" src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="" src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="" src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="" src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="" src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img id="imgs" src="" src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="" src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    <img src="" src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt="">
    </p>
    //js代码
    //懒加载
        var viewport=window.innerHeight;//获取浏览器视口高。
        var img=document.querySelector('#imgs');    //获取html ID
        var src=img.dataset.src;                    //获取src链接
    
        //监听滚动
        window.onscroll=function(){
            //用到getBoundingClientRect api的top属性,获取元素的偏移位置,参考MDN资料
            //https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getBoundingClientRect
            var imgtop= document.querySelector('#imgs').getBoundingClientRect().top;
            if(imgtop<=viewport){
                img.src=src;          
                return true;
            }
        }

    회신하다
    0
  • 취소회신하다