Javascript 如何判断在另一个元素中是否可见或哪些元素可见

Javascript 如何判断在另一个元素中是否可见或哪些元素可见,javascript,ajax,Javascript,Ajax,所以我有一个第三方应用程序,我试图从中获取元素信息。我没有访问权或想访问第三方的核心JS引擎 也就是说,他们有一个“幻灯片”类型的东西,当元素进入主容器视图时,它不会在元素上放置特定的“当前”类。其中一些是由AJAX运行的,通过PHP调用DB来获取下一个对象,然后它将“下一个”元素动态添加到DOM和容器中,然后任何带到DOM中的对象都被保留,因此我无法通过JS判断容器中当前的“可见”元素是否为当前元素。或者使用类或ID的传统方式。它也不会使用“display”或“visibility”隐藏元素,

所以我有一个第三方应用程序,我试图从中获取元素信息。我没有访问权或想访问第三方的核心JS引擎

也就是说,他们有一个“幻灯片”类型的东西,当元素进入主容器视图时,它不会在元素上放置特定的“当前”类。其中一些是由AJAX运行的,通过PHP调用DB来获取下一个对象,然后它将“下一个”元素动态添加到DOM和容器中,然后任何带到DOM中的对象都被保留,因此我无法通过JS判断容器中当前的“可见”元素是否为当前元素。或者使用类或ID的传统方式。它也不会使用“display”或“visibility”隐藏元素,因此我也无法通过这种方式获取它。它仅动态添加偏移或定位

它只使用一个“offset”变量,并在offset中迭代,并根据下一个或上一个按钮选择动态添加定位负数或正数

考虑到我无法从元素中获取“当前”类或属性,而且它是AJAX,我需要从“当前”元素中获取属性,并将其放置在我的Google Analytics的“发送”属性中。因此,页面名只是作为基本页面名而不是对象名返回

有没有办法在容器元素的视图空间中获取当前元素

如您所见,当前HTML没有真正的标识符来告诉我当前元素是什么。有点令人沮丧

 <div class="container">
   <div class="slide" offset="1" style="position:absolute; top:0; left:0"><p class="objTitle">Some object title 1</p></div>
   <div class="slide" offset="2" style="position:absolute; top:0; left:1000"><p class="objTitle">Some object title 2</p></div>
   <div class="slide" offset="3" style="position:absolute; top:0; left:2000"><p class="objTitle">Some object title 3</p></div>
   <div class="slide" offset="4" style="position:absolute; top:0; left:3000"><p class="objTitle">Some object title 4</p></div>
   <div class="slide" offset="5" style="position:absolute; top:0; left:4000"><p class="objTitle">Some object title 5</p></div>
 </div>

某些对象标题1

某些对象标题2

某些对象标题3

某些对象标题4

某些对象标题5

根据视口大小,左侧定位是动态的。 JS更复杂,是一个完整的库,但我需要知道的是当前幻灯片是否在当前容器视图中。如果可能的话。我曾考虑过使用视口技巧,但从技术上讲,它是在视口中,只是定位在当前幻灯片的绝对左侧或右侧

任何指针都是有用的。我知道我没有发布JS,它是一堆自定义库。

提前感谢。

我不完全清楚您对当前幻灯片实际位置的定位了解多少,但假设您了解一些情况,那么:

  • 在容器上设置变异观察者
  • 添加的任何新幻灯片,都要在其上放置一个交点观察者

使用交叉点观察者和/或动态获取所有幻灯片的偏移,您应该能够找到实际在视图中的幻灯片。

更改可见幻灯片是否更改偏移值?如果是这样,您可以使用
document.querySelector('.slide[offset=“1”])
假定,无论哪个是“current”,都将具有相同的位置值,而不管它在容器中的div列表中的什么位置。您只需计算该值,然后匹配或最接近该值的值就是当前值。但理想情况下,你应该寻找一种方法来连接到他们的流程中,看看是否有可以连接的事件或回调。BülentAkgül,我不知道它当时使用的是哪个偏移量,因为它在其可见时没有设置偏移量,它们只是被设置为偏移量并在那里显示,但随后它们不会再次更新,所以我不能用它作为限定词。凯文布,我也想过这么做。我仔细研究了一下代码,没有明显的回调,但我想我可以更深入地研究它。它绑定到一组自定义库中,这些库用于确定它们的绝对位置。我对我的问题进行了评估,以显示定位价值,但我将对此进行更多研究。谢谢你的回复。