【问题标题】:scroll div content then continue body滚动 div 内容然后继续正文
【发布时间】:2017-10-09 01:02:15
【问题描述】:

我有一个 div 容器,占屏幕的 80%,左右两个固定侧边栏,它们各占 10%。我的 div 非常大,所以我使用 overflow: hidden 来隐藏内容。当用户向下滚动时,它会忽略 div,只滚动 body。

现在,如果我将 div 设置为溢出:滚动,用户首先滚动 div,然后停止,并且不滚动正文。

最后,我注意到,如果我将鼠标悬停在 oveflow: scroll div 上,它会滚动,但如果我将鼠标悬停在固定侧边栏上,那么 body 会滚动。

所有这些行为都不是我需要的。我希望我的 div:hidden 首先从上到下滚动,当它接近尾声时,只有 body 开始滚动。

所以,我尝试检测,一旦我的 div 容器到达顶部,我就会这样做:

$(#myDiv").focus(),但是,如果鼠标悬停在固定的侧边栏上,正文会滚动。

是否有任何解决方案,使这项工作?特别是溢出:隐藏,似乎根本不可能滚动?

codepen.io/OrvaldMaxwell/pen/Yraryb 这是示例。我需要名为“scrollMeAutoPLS”的div先滚动,然后继续正文

【问题讨论】:

  • 您有一个工作示例可以让我们检查您的代码吗?
  • 嗯,好点子。我的网站很大很复杂,但我会继续做一些最小的重现场景
  • codepen.io/OrvaldMaxwell/pen/Yraryb 这是示例。我需要名为“scrollMeAutoPLS”的 div 先滚动,然后继续正文

标签: jquery css scroll


【解决方案1】:

简单:

$('#yourDiv').animate({ scrollTop:$('#yourDiv')[0].scrollHeight },800,function() {
    $('html,body').animate({ scrollTop:$(document).height() },800);
});

800 是以毫秒为单位的持续时间。

【讨论】:

  • 这会自动滚动,但我想用鼠标滚轮手动滚动。我在这里做了最小的可重现示例:codepen.io/OrvaldMaxwell/pen/Yraryb;现在,如果你滚动,div name 'scrollMeAutoPLS' 将不会滚动,只是 body
  • @user2426290 我明白了。但是,据我所知,那将是浏览器的工作,而不是我们的工作。如果我们的鼠标指针在<div> 上,那么div 会滚动,如果在外面,那么<body> 会滚动。是的,这是根据用户的鼠标位置。
  • 我明白了,谢谢。可能我只能用暴力 jQuery 注入来处理它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
相关资源
最近更新 更多