jQuery 防止滚动超过顶部和底部的某个点

Chr*_*ris 3 jquery scroll

我有一个弹出式媒体查看器,当用户单击缩略图时会触发该查看器。新查看器位于背景屏幕上,并在其下方显示图像和用户评论。如果用户单击页面中间的图像,则在该点显示“弹出”查看器。说,距离顶部 2000 像素。此时,用户可以向下滚动以查看图像评论,但如果滚动太远或向上滚动,则会看到底层图片库。使用 jQuery,有没有办法阻止用户向上滚动超出弹出窗口,或滚动到弹出窗口末尾下方。

因此,假设弹出窗口从顶部 2000 像素开始,并且弹出窗口高 3500 像素,用户将只能滚动从顶部 2000 像素开始的 3500 像素 div。在弹出查看器关闭之前,他们无法在其上方或下方滚动。我希望这是有道理的。任何帮助将非常感激。

小智 5

这是如何限制 2 点之间滚动的示例

http://jsfiddle.net/n7BSs/

$(document).ready(function(){
    var eTop = $("#test").offset().top;
    $(document).scrollTop(eTop);
    var eHeight = $("#test").height();
    var eBottom = eTop + eHeight - $(window).height();
    $(document).on("scroll", function(e){
        var windowScrollTop = $(window).scrollTop();
        if(windowScrollTop < eTop){
            console.log("not allowed");
            $(document).scrollTop(eTop);
        }
        else if(windowScrollTop > eBottom){
            $(document).scrollTop(eBottom);
        }
        else{
            console.log("allowed");
        }
    });
});
Run Code Online (Sandbox Code Playgroud)