检查元素的祖先是否固定

acj*_*jay 4 javascript zurb-joyride

我有一个具有固定导航栏的网站,我想使用 Zurb Joyride 将提示附加到导航栏中的元素。问题是,当页面滚动时,导航栏保持不变,但工具提示却没有。

我尝试将工具提示附加到导航栏中的元素(而不是body),但我遇到了奇怪的渲染问题。设置position: fixed包含div提示似乎可行,但我想知道是否有一种简单的方法可以以编程方式检测元素是否不滚动,因为它包含在固定位置容器中,以便我可以检测何时设置 Joyride 提示也已修复。有什么建议么?

Jam*_*dog 5

这是一个纯 JavaScript 方法。它迭代所有偏移父项,直到找到一个固定的父项(或根本没有)。

function isFixed(elem){
    do{
      if(getComputedStyle(elem).position == 'fixed') return true;
    }while(elem = elem.offsetParent);
    return false;
}
Run Code Online (Sandbox Code Playgroud)

如果您使用 jQuery,则需要使用elem[0]或提取节点对象elem.get(0)