【发布时间】:2013-09-01 23:07:22
【问题描述】:
当您在浏览器中的输入字段之间切换时,浏览器将自动滚动最近的父容器以将下一个焦点字段放置在视图中。
简单的 JSFiddle:http://jsfiddle.net/TrueBlueAussie/pxyXZ/1/
$('.section').eq(6).find('input').focus();
例如,如果您打开上面的小提琴,它会在黄色窗口的底部选择“Sample item 7”。如果按 Tab,“Sample text 8”字段会向上跳到父窗口的中间。
显然这对于普通网站来说是件好事,但我有一个自定义滚动容器,我可以在其中手动定位和滚动所有内容。我正在跟踪焦点变化并将使用动量滚动条将其显示出来,但是如何禁用网络浏览器的默认滚动行为?很高兴接受 CSS、Javascript 或 JQuery 解决方案。 p>
【问题讨论】:
-
我首先想到的是使用
keyUp检测来注册选项卡,查看下一个输入是否超出“窗口”,然后使用带有$(':focus').parent().next().find('input').focus()的自定义滚动条作为回调。你的动量卷轴是什么?是否允许回调函数? -
@PlantTheIdea:我根据这篇文章写了自己的动量滚动条:ariya.ofilabs.com/2011/10/…,我确实有回调。
-
好的,提供了答案。它是通用的,因为我没有真正可以使用的代码,但一般要点是您不想禁用浏览器的滚动行为,您希望将焦点更改推迟到您执行自己的滚动之后。这将允许您根据需要控制滚动。
标签: javascript jquery browser html-input tabbing