如何用jquery检测位置的变化

How to detect changes in position with jquery?

本文关键字:变化 位置 检测 何用 jquery      更新时间:2023-09-26

我正在尝试开发一个小部件,这是一个选择表单元素的替代品。它是一个块元素,所以它可能是它的容器的100%。像这样:

<element style="width: 100%">Please choose</element>
<options style="display: none">
    <option>Option 1</option>
</options>

它有一个选项列表,点击打开,并调整大小和位置,使其与触发器元素对齐。

现在,每当我调整窗口的大小或在我的布局变化,我需要重新定位的选项列表。我认为我可以很容易地绑定到window.resize(),因为options.width()发生了变化。唯一的问题是如何检测元素位置的变化以重新定位选项。

是否有任何事件绑定到位置或偏移量的变化?

谢谢。德米特里。

从语义上讲,选项应该是"select元素"的子元素。就像,你知道,用传统的select

<element style="width: 100%">
Please choose
<options style="display: none">
    <option>Option 1</option>
</options>
</element>

这样,您可以使用绝对定位来始终将options定位到相对于其父节点的正确位置。为此,您只需要在element上指定position: relative(或者实际上是static以外的任何其他position值)。


有可能您只是指您的HTML作为一个快速示例,但您最好使用标准的HTML标记(如div, ul,无论哪种情况最适合您),并附加一个特殊的类。