当前位置: 首页 > 面试题库 >

防止滚动从元素滚动到窗口

邹缪文
2023-03-14
问题内容

我有一个模态框窗口(弹出窗口),其中包含一个iframe, 并且在该 iframe中 有一个可滚动的 div

当我滚动iframe的内部DIV,并且达到其上限或下限时, 浏览器本身的窗口就会开始滚动。这是 不想要的行为

我已经尝试过类似的操作, 当鼠标进入弹出框区域时,该操作会在onMouseEnter时终止主窗口滚动:

e.preventDefault()由于某些原因无法正常工作…

$("#popup").mouseenter(function(){
   $(window).bind("scroll", function(e){
        e.preventDefault();
   }); 
}).mouseleave(function(){
    $(window).unbind("scroll");
});

更新资料

似乎现在2013年e.preventDefault();就足够了…


问题答案:

使用简单的CSS属性解决了(对于 某些 浏览器):overscroll-behavior

body{

  height: 600px;

  overflow: auto;

}



section{

  width: 50%;

  height: 50%;

  overflow: auto;

  background: lightblue;

  overscroll-behavior: none; /*   <--- the trick    */

}



section::before{

  content: '';

  height: 200%;

  display: block;

}


<section>

 <input value='end' />

</section>

只需将样式属性应用到滚动应该“锁定”到的元素上,滚动事件就不会冒泡到任何可能具有滚动的父元素。

与上面相同的演示,但 没有 技巧:

body{

  height: 600px;

  overflow: auto;

}



section{

  width: 50%;

  height: 50%;

  overflow: auto;

  background: lightblue;

}



section::before{

  content: '';

  height: 200%;

  display: block;

}


<section>

 <input value='end' />

</section>


 类似资料:
  • 问题内容: 我有一个“浮动工具箱”-的div 。效果很好。 但是,当在该框内滚动(使用鼠标滚轮)并到达底部或顶部时,父元素将“接管”“滚动请求”:工具箱后面的文档将滚动。 -这很烦人,而不是用户的“要求”。 我正在使用jQuery,并认为可以使用event.stoppropagation()停止此行为: 它确实输入了该函数,但是仍然会发生传播(文档滚动) 很难在SO(和Google)上搜索此主题,

  • 问题内容: 我有这个元素: 然后,我还有其他一些元素,例如其他文本输入,文本区域等。 当用户点击带,页面应该滚动到页面的最后一个元素与一个漂亮的动画。它应该是滚动到底部而不是顶部。 页面的最后一项是带有的按钮: 动画不应太快并且应该流畅。 我正在运行最新的jQuery版本。我更喜欢不安装任何插件,而是使用默认的jQuery功能来实现此目的。 问题答案: 假设您有一个ID为的按钮,请尝试以下示例:

  • 问题内容: 我有一个聊天小部件,每次向上滚动时,它都会拉出一系列消息。我现在面临的问题是加载消息时滑块固定在顶部。我希望它专注于上一个数组中的最后一个索引元素。我发现可以通过传递索引来创建动态引用,但是我还需要知道使用哪种滚动功能来实现这一点 问题答案: 单击此处,获得有关StackBlits的完整演示 React 16.3 +,Class组件 类组件-Ref回调 不要使用字符串引用。 字符串引用

  • 问题内容: 我一直在寻找一种“灯箱”类型的解决方案,它允许这样做,但还没有找到(请提出建议,如果您知道的话)。 我尝试重新创建的行为就像单击图片时在Pinterest上看到的一样。叠加层是可滚动的( 因为整个叠加层像页面顶部的页面一样向上移动 ),但是叠加层 后面 的主体是固定的。 我试图仅使用CSS( _即使用覆盖整个页面和正文的覆盖层)_来创建它,但这并不能阻止其滚动。 如何防止正文/页面滚动

  • 我试图在jquery mobile Iscroll中使用scroll to element函数,但它不起作用 这就是我的脚本的样子 我在这里尝试了MyJSFIDLE

  • 问题内容: 我使用jQueryMobile为iOS和Android创建了一个网站。 我不希望文档本身滚动。相反,只有一个区域(一个元素)应该是可滚动的(通过css属性)。 所以我通过以下方式禁用了文档滚动: 但这也将禁用文档中所有其他元素的滚动,无论是否设置。 我该如何解决? 问题答案: 终于,我开始工作了。真的很简单: