代码之家  ›  专栏  ›  技术社区  ›  omoto

ie如何防止滚动页面上的输入焦点丢失?

  •  0
  • omoto  · 技术社区  · 17 年前

    我有很多输入的HTML表单。我很感兴趣的情况是,当我集中输入,然后我滚动页面和焦点是混乱的。

    1 回复  |  直到 17 年前
        1
  •  1
  •   Jon Cram    17 年前

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

    你需要:

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

    您可以通过 blur 事件。向希望记住焦点的每个元素添加适当的事件处理程序。

    模糊 事件处理程序运行时,对于给定的输入元素,您应该存储一个输入元素的标识符(可能是全局变量)。如何做到这一点取决于您选择如何识别元素。这个 id 是理想的元素。

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

    通过比较ScrollHeight的前后值,可以判断文档何时完成滚动。见 https://developer.mozilla.org/en/DOM/element.scrollHeight .

    总体:

    • 添加 模糊 输入元素的事件处理程序
    • 在blur中,注意丢失焦点的元素和当前滚动高度
    • 在滚动期间,比较滚动高度以确定滚动是否已停止。
    • 当滚动停止时,重新应用焦点

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