IE |如何防止滚动页面上缺少输入焦点?

时间:2009-01-28 21:32:22

标签: javascript html

我有大量输入的HTML表单。当我关注输入时,我很有趣,之后我滚动页面并且焦点混乱。

1 个答案:

答案 0 :(得分:1)

问题:当使用IE滚动条时,焦点元素会失去焦点。

你需要:

  • 识别失去焦点的元素
  • 确定文档滚动的时间
  • 重新应用焦点

您可以通过blur事件识别失去焦点的元素。为您希望记住焦点的每个元素添加一个合适的事件处理程序。

blur事件处理程序运行时,对于给定的输入元素,您应该在全局变量中存储input元素的标识符。如何执行此操作取决于您选择如何识别元素。该元素的id将是理想的。

您可以判断文档何时在scroll对象的window事件处理程序中滚动。请参阅https://developer.mozilla.org/en/DOM/window.onscroll

您可以通过比较scrollHeight的before和after值来判断文档何时完成滚动。请参阅https://developer.mozilla.org/en/DOM/element.scrollHeight

总体:

  • blur事件处理程序添加到输入元素
  • on blur,请注意失去焦点的元素和当前的scrollHeight
  • 在滚动期间,比较scrollHeights以确定滚动是否已停止
  • 滚动停止时,重新应用焦点

您可能希望在滚动停止和重新应用焦点之间等待一段时间。用户可能正在滚动一点,停止,滚动,停止。你不希望你的脚本引起疯狂的焦点跳跃行为。