簡體   English   中英

使用jQuery從父級獲取子div

[英]get child div from parent using jquery

大家好,我有一個父div和多個子div。 我有一個可以上下移動以查看孩子的卷軸。 現在,我想知道有一種方法,當我上下滾動然后使用jquery時,我會看到哪個子div處於焦點。 有沒有辦法做到這一點。 如果是,請告訴。 謝謝

這是一個例子

<div id="parent" style="overflow:scroll; height:200px">
   <div id="child1">
      <p>
     some text
     </p>
    </div>

   <div id="child2">
      <p>
     some text
     </p>
   </div>

   <div id="child3">
      <p>
     some text
     </p>
   </div>
</div>

現在,這就像這張圖片 現在,當我向下滾動時,如何知道焦點所在的子div。 每次用戶移動滾動條時,我將如何知道焦點所在的div。

$( '#parent' ).scroll(function() {
  //What shoult I write here to know which child div is in focus 
});

我過去曾使用名為Jquery Visible的插件來實現此目的。 我無法確切描述其背景到底發生了什么,但是您可以設置一個調用來檢查元素是否在視口中:

$('#element').visible()

我想指出的是,我至少有12個月沒有使用過該插件,因此支持可能已經終止。 https://www.customd.com/articles/13/checking-if-an-element-is-visible-on-screen-using-jquery

我認為沒有任何簡單的方法可以做到這一點。 但是,我確實在類似的帖子中找到了這個有用的功能:

function isScrolledIntoView(elem)
{
    var $elem = $(elem);
    var $window = $(window);

    var docViewTop = $window.scrollTop();
    var docViewBottom = docViewTop + $window.height();

    var elemTop = $elem.offset().top;
    var elemBottom = elemTop + $elem.height();

    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}

它基本上將元素從窗口頂部移開。

要添加您的示例:

$( '#parent' ).scroll(function() {
            $(this).children().each(function(child) {
                if(isScrolledIntoView(child)) {
                    //Do the thing
                }
            });
        });

在此處查看帖子: 滾動后檢查元素是否可見

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM