-1

在 html 中,如果子 div 大于父 div,如果您设置了适当的样式规则,它将在父 div 上创建滚动条。

但是,我希望它在发生滚动尝试时(通过按箭头键,在元素上进行适当的 javascript 调用)发生在子节点上的最小所需大小扩展,以便它可以滚动到它的程度如果孩子已经那么大,无论如何都会滚动。

再次声明:如果孩子在 200px 宽度的父项中是 300px 宽度,我按右箭头键,它向右滚动 20 像素,那么如果孩子在同一场景中是 200px,我希望它放大宽度增加 20 像素,如果可能的话不要再增加,然后向右滚动 20 像素。

这一切都假设没有办法在其父元素中滚动子元素,无论它是否实际上大于其父元素。如果我没有做足够的研究,很可能会提前道歉。:)

4

1 回答 1

0

您可能知道overflow: scroll无论子项大小如何,该样式都会显示滚动条。您是否真的需要 Javascript 来提升子维度,而不是拥有一个更大尺寸的额外包装 div 会导致像本演示中那样的滚动?我知道 Safari 默认情况下已经在选定的滚动 div 中向下滚动大约 20px 的箭头键,我假设其他浏览器也具有此功能。

如果您确实需要使用 javascript 增加 div 的大小,jQuery 有一些有用的功能。查找左右箭头键的.keydown() 方法(我相信分别是键码 37 和 39)和.animate()或其他一些CSS 方法可以调整链接在一起的 div 的大小。

.scroll () 方法也可以派上用场。您可以将调整大小代码链接到overflow: scroll已应用属性的滚动方法。即使滚动条为空,我也会测试浏览器是否会触发 .scroll 方法。如果没有,您可能会使子元素比父 div 宽/高 1px,然后依靠 jQuery 来进一步调整用户滚动的大小。

从广义上讲,我建议不要使用 javascript/jQuery 调整大小和滚动。与不同浏览器,尤其是移动浏览器的兼容性将不一致或无法使用。我不确切知道您的需求是什么,但如果它可以只用 HTML/CSS 来完成,它会更干净、更兼容。如果它不运行,我会保留 javascript 的可用性不会丢失的情况。

于 2012-08-09T03:48:07.290 回答