jquery - 如何确定元素是否位于固定位置的容器中?

标签 jquery html css-position

假设我有一个嵌套的 div 布局,其中任何 div 可以有固定位置(CSS 位置:固定):

<div class="MaybeIAmFixedToo">
    <div>
        <div class="MaybeIAmFixed">
            <div>
                <div id="IAmTheTarget">I am the target</div>
            </div>
        </div>
    </div>
</div>

我有最里面元素的 jQuery 引用:$('#IAmTheTarget')

我怎样才能(最好的情况下,不会造成性能噩梦:))找出我的目标是否位于固定位置的容器中?例如,$('.MaybeIAmFixed') 可以有固定位置,但我的目标的任何其他父级也可以。

编辑: 我需要知道这一点,因为当元素固定时,我需要使用 $('#IAmTheTarget').position(); 获取其位置,如果没有,我需要使用 获取它>$('#IAmTheTarget').offset();

最佳答案

您不能通过任何类型的简单选择器。不过,您可以根据位置过滤元素的父列表:

var fixedp = $('#IAmTheTarget').parents().filter(
  function() {
    return $(this).css('position') == 'fixed';
  }
);

alert('fixed ancestors? ' + (fixedp.length ? "yes" : "no"));

示例:http://codepen.io/paulroub/pen/axrFB

关于jquery - 如何确定元素是否位于固定位置的容器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25293684/

相关文章:

javascript - 在 mousemove 上的 div 问题后圈出

javascript - 预加载图像的更有效方式

html - 在 Mac 上测试 IE 网页设计的最佳方式?

html - 为什么 Chrome 会拉伸(stretch) 'align-items' 而不是像声明的那样将它们对齐到 'flex-end'?

html - div 高度遵循较小的 div 高度

javascript - 响应式移动导航栏(导航)jquery/javascript

javascript - Soundcloud 流媒体音频

jquery - 选择多选中的水平数据

html - 固定位置导航栏更换

CSS 绝对定位和主体滚动