javascript - 使用 jQuery 滚动并捕捉到内部元素

标签 javascript jquery scroll vertical-scrolling

我有一个页面涉及 3 个部分,例如顶部、中间和底部。

每个部分都有固定的高度。假设在本例中为 600px;

在中间部分,我有一些内容超出了规定的 600 像素高度。例如1200 像素的内容。创建溢出,中间部分的内部滚动条。

我的问题是:

如何实现将提供以下场景的 jQuery 解决方案。

用户向下滚动经过顶部部分到中间部分,主滚动然后捕捉/切换到中间 - 内部内容,溢出高度为 1200px。一旦他们向下滚动到内容的末尾,他们就会离开中间部分,并且滚动会捕捉/切换回末尾部分。

你能提供解决方案吗?

提前致谢

最佳答案

更新:

这可能不完全是您想要的工作方式,但它以某种方式满足您的需要: DEMO

var passed=false;
$(document).scroll(function(){
    if($('body').scrollTop()>=$('#middle').offset().top && !passed){
        $('body').css('overflow','hidden');
        $('#container').css('overflow','auto');
        $('#container').attr("tabindex",-1).focus();
        $('#container').scrollTop(0);
    }
    else if($('body').scrollTop()<$('#middle').offset().top){
        passed=false;
    }
});
$('#container').scroll(function(){
    if($(this).scrollTop()+$(this).height()>=$('#long').height()){
        $(this).css('overflow','hidden');
        $('body').css('overflow','auto');
        passed=true;
    }
});

关于javascript - 使用 jQuery 滚动并捕捉到内部元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25826152/

相关文章:

ios - 滚动 Swift 时 Tableview 内容会重新排序

javascript - JavaScript 中的否定

javascript - 在 AngularJS Controller 中创建包含功能的对象还是具有松散功能的对象更好?

javascript - 带有 SQL 问题的 HTML Perl 更新按钮

c# - Jquery Easy UI + ASP.NET

javascript - 为什么Chrome在加载后将我的页面称为XHR,并执行MySQLi插入两次?

javascript - 当我下降到使用 ng-repeat 创建的元素时如何向下滚动

javascript - 将javascript点符号对象转换为嵌套对象

javascript - jQuery - 多次替换 HTML 元素

滚动停止时Javascript停止动画