2014-09-13 45 views
1

我有一个涉及3个部分的页面,例如,顶部,中部和底部。使用jQuery滚动和捕捉内部元素

每个部分都是固定的高度。让我们说在这种情况下600px;

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

我的问题是:

我如何能实现一个jQuery的解决方案,将提供以下方案。

用户向下滚动到顶部到中间部分,主滚动然后捕捉/切换到中间内容,溢出高度为1200px。一旦他们滚动到内容的结尾,他们离开中间部分,滚动按钮/切换回结束部分。

您能否提供解决方案?

在此先感谢

+0

无法使用原生滚动条执行此操作。应该能够找到它的滚动条插件 – charlietfl 2014-09-13 19:04:51

回答

1

更新:

这可能不是正是你想要的工作方式,但它确实你的方式所需要的: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; 
    } 
}); 
+0

是的,这就是解决方案的问题。你不完全是什么意思?我会尝试通过实施并回复你:)谢谢! – cwiggo 2014-09-13 19:40:56

+1

不客气,我更新了答案,再次检查,我解决了来回问题(即,如果用户向下滚动然后再滚动然后再滚下去)。 – 2014-09-13 19:45:06