【发布时间】:2015-08-09 02:19:40
【问题描述】:
我正在尝试创建一系列窗口大小的 div,其内部 div 大小可变 > 窗口大小。问题是它需要滚动,就好像没有嵌套的 div 一样。
简而言之,我想要这个:
css{
block{ height:100wh; }
innerBlockSmall{ height:100wh; }
innerBlockLarge{ height:200wh; }
}
<div class="block">
<div class="innerBlockLarge"></div>
</div>
<div class="block">
<div class="innerBlockSmall"></div>
</div>
https://jsfiddle.net/cbuh8psd/
像这样行事
css{
innerBlockSmall{ height:100wh; }
innerBlockLarge{ height:200wh; }
}
<div class="innerBlockLarge"></div>
<div class="innerBlockSmall"></div>
https://jsfiddle.net/t6zrvo7u/1/
不幸的是,滚动“焦点”是由hover在可滚动元素上触发的。在这种情况下,这是一种不良行为。
目前我知道有两种可能的解决方案。
通过 javascript 手动分配滚动“焦点”。 (最佳)
完全覆盖默认的 HTML 滚动 javascript,用于 例如库 ISCROLL5。
(好的,如果性能影响很小)
不幸的是,在浏览了 developer.mozilla 的 HTML5 文档后,我没有遇到任何通过 javascript 来“聚焦”滚动到元素的方法。
至于选项 2:ISCROLL5 在超过 15-20 个滚动 div 的情况下对性能造成了不良影响。
我希望我在这里遗漏了一些东西,任何解决方案、修复或建议将不胜感激。
【问题讨论】:
-
从
.sbRemover中删除overflow: auto会禁用悬停时的滚动。 -
遗憾的是,这种行为并不是那么简单。删除
overflow: auto会导致元素根本不滚动。所需的行为是嵌套的<div class="block">scrolls 溢出到<body>滚动,就好像它们没有嵌套一样。请参阅第二个 JS 小提琴以了解所需的行为 -
@DigitalDouble 感谢您的快速回复。任何和所有建议都是有帮助的。
-
我没完全理解,我的英语不太好:)。 div不能滚动?而是溢出:自动使用溢出:隐藏?
标签: javascript jquery css html scroll