Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/jQuery在单个对象中转换DOM_Javascript_Jquery_Html - Fatal编程技术网

Javascript/jQuery在单个对象中转换DOM

Javascript/jQuery在单个对象中转换DOM,javascript,jquery,html,Javascript,Jquery,Html,我目前有: <div class="item"></div> <div class="item"></div> <div class="item"></div> <div class="item"></div> var items=document.getElementsByClassName('item') 变量项包含“对象HTMLCollection” 我想检查div是否在屏幕上可见,我知

我目前有:

<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>

var items=document.getElementsByClassName('item')

变量项包含“对象HTMLCollection”
我想检查div是否在屏幕上可见,我知道如何做,但是我需要jquery/javascript中不同对象中的div,这样我可以在用户滚动时检查对象是否在屏幕上(我使用的是
$(窗口)。滚动


我该如何实现这一点?

我想你想要的是:

$('.item').each(function(){
    var element = $(this);//element contain the element selected for one iterate
    //here your code to check one div is visible
});

您可以使用自定义的
:inview
伪选择器来实现它:


循环遍历集合。for(var i=0;idiv.item
每次迭代}
:visible
不选择当前在视口中但在整个文档对象中可见的元素。如果使用:if(element.css({“display”})=“none”)@Buisson将声明元素当前在视口/屏幕中。抱歉,我误解了术语“可见”
$.extend($.expr[':'], {
    inview: function(el) {
        var e = $(el),
            w = $(window),
            wt = w.scrollTop(),
            wb = wt + w.height(),
            et = e.offset().top,
            eb = et + e.height();

        return eb >= wt && et <= wb;
    }
});
$(window).on('scroll', function(){
    //do something with: 
    $('.item:inview') // .item elements in viewport
    //or with:
    $('.item:not(:inview)') // .item elements out of viewport
});