jquery – 获取当前位置div的ID

前端之家收集整理的这篇文章主要介绍了jquery – 获取当前位置div的ID前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有n个< section>在一个页面中.每个都提供id,例如’page1′,’page2’……

在顶部我放置2个按钮说上一个和下一个.按下PrevIoUs时,它将滚动到PrevIoUs< section>.与下一个<部分>类似.按下Next Button.

但现在问题是当用户使用滚动条滚动页面时,我如何检测哪个<节>用户正在查看?

解决方法

您可以检查您的部分是否在“ViewPort”中,我使用它来查找:
function isTotallyInViewPort($entry){
    var windowScrollTop = $(window).scrollTop();
    var windowHeight = $(window).height();
    var windowVisibleBottom = windowScrollTop + windowHeight;
    var entryTop = $entry.offset().top;
    var entryOuterHeight = $entry.outerHeight();
    var entryVisibleBottom = entryTop + entryOuterHeight;

    var isInView = windowScrollTop < ( entryTop ) < (windowVisibleBottom);
    if(!isInView) return false;

    var isCompleteInView = ( entryVisibleBottom ) < (windowVisibleBottom);
    return isCompleteInView;
}

如果要检测是否显示PARTS,只需创建一个函数,检查当前视图是否与节的位置重叠.

你可以将它绑定到$(window).on(“scroll”)

编辑:
我认为这应该检测你的元素是否显示(尚未测试)

function isPartlyInViewPort($entry){
    var windowScrollTop = $(window).scrollTop();
    var windowHeight = $(window).height();
    var windowVisibleBottom = windowScrollTop + windowHeight;
    var entryTop = $entry.offset().top;
    var entryOuterHeight = $entry.outerHeight();
    var entryVisibleBottom = entryTop + entryOuterHeight;

    var isAboveViewPort = entryVisibleBottom < windowScrollTop;
    var isBelowViewPort = windowVisibleBottom < entryTop;

    return !(isAboveViewPort || isBelowViewPort);
}

猜你在找的jQuery相关文章