使用boostrap检查元素是否是用户可见的

时间:2015-08-24 16:30:00

标签: javascript jquery twitter-bootstrap-3 position offset

我在stackoverflow上经历了很多解决方案来检查一个元素当前是否在用户窗格中可见,但是当使用bootstrap时它们似乎都不起作用。

如果正确的jsfiddle结果屏幕足够大以显示右列,则会显示“确定”警报。但是如果右列低于折叠,那么当用户滚动到元素所在的位置时,我不会收到任何警报。

https://jsfiddle.net/play75010/xjuj49kr/5/

这里我使用了stackoverflow上的checkVisible(),但是我已经用许多其他解决方案检查了它。

有什么想法吗?

function checkVisible( elm, evalType ) {
    evalType = evalType || "visible";

var vpH = $(window).height(), // Viewport Height
    st = $(window).scrollTop(), // Scroll Top
    y = $(elm).offset().top,
    elementHeight = $(elm).height();

if (evalType === "visible") return ((y < (vpH + st)) && (y > (st - elementHeight)));
if (evalType === "above") return ((y < (vpH + st)));
}

1 个答案:

答案 0 :(得分:1)

尝试检查滚动可能是您正在寻找的内容:

  $(window).scroll( function() {
      update();   
      console.log('fire');
    });

Fiddle