html - 如何关闭父窗口的滚动?

标签 html css

我有一个 <select>带有许多选项的框,您可以滚动浏览这些选项。当您滚动到选项列表的底部并继续滚动时,滚动“溢出”到父窗口中,而是向下滚动窗口。有没有办法关闭它,即当您滚动到底部时,向下滚动被禁用?

Here是一个 fiddle 。要获得我描述的效果,请将鼠标悬停在多项选择上并向下滚动(使用触控板、滚轮等)到底部,然后继续滚动。整个页面将滚动。我希望的行为是当您到达选择选项的底部时整个页面不滚动。

最佳答案

实现你想要的唯一方法是使用javascript。逻辑非常简单,在 hover 上,您可以将 overflow: hidden; 添加到正文中,然后在 select 元素的 blur 上,您删除溢出值。

代码看起来像这样(给你的选择框一个 id selectbox):

document.getElementById('selectbox').onmouseenter = function(){
    document.body.style.overflow = 'hidden';
};

document.getElementById('selectbox').onmouseout = function(){
    document.body.style.overflow = 'auto';
};

演示:http://jsfiddle.net/LRCKn/6/ - 你只需要让它在选项元素上应用 css 更改。

关于html - 如何关闭父窗口的滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20956055/

相关文章:

html - 尝试在 tumblr 容器主题周围添加边框

css - Angular 2 : User drag for touch devices at runtime

jquery 在悬停时更改光标并单击

javascript - 有条件地绘制 HTML5 Canvas

html - 我应该如何居中我的页面?

html - 使用 css 和中心文本在图像上叠加颜色

html - 我怎样才能让这个文本一直坐在左边?

php - 奇怪的 div 嵌套问题

html - 如何有选择地居中文本?

jQuery,响应式菜单不起作用