【问题标题】:Why is typing in a textarea in Firefox causing the screen to scroll?为什么在 Firefox 中输入文本区域会导致屏幕滚动?
【发布时间】:2012-08-24 08:08:27
【问题描述】:

我只在 Firefox 中遇到了一个非常奇怪的同位素插件问题。我的每个同位素元素都有一个文本区域,当我向下滚动到底部并输入其中一个文本区域时,屏幕会跳到顶部。我已经在 jsfiddle 中复制了这个:

http://jsfiddle.net/galtschul/WfTZ5/

我已经看了好几个小时了,甚至无法弄清楚是什么导致了这个卷轴被触发。希望得到一些帮助!

【问题讨论】:

  • 没有发生在我身上(firefox 13.0.1)
  • 我可以确认,(Firefox 14.0.1)
  • 我也可以确认,(Firefox 14.0.1)。
  • 说真的??这怎么可能?我每次都可以在 13.0.1 和 14.0.1 中重现它。我要疯了吗?我想我应该提到我在 OSX 10.8 上。
  • 我在 Firefox 14.0.1 中看到了问题

标签: javascript jquery firefox jquery-events jquery-isotope


【解决方案1】:

所以,问题不在于同位素。问题是在 scale3d 和/或 transform3d 发生后 firefox 如何渲染文本区域存在错误。它最终“认为” textarea 在左上角,这就是它跳到顶部的原因。以下是 Mozilla 的 bugzilla 上提交的两个错误:

2011 年 11 月:https://bugzilla.mozilla.org/show_bug.cgi?id=703241 2012 年 7 月:https://bugzilla.mozilla.org/show_bug.cgi?id=778761

在应用相同的转换后,Chrome 也会出现渲染问题。即,插入符号的渲染。我提交了一个新的但在 Webkit 的 bugzilla 上,很快就得到了 Webkit 开发人员的确认。

这是一个错误示例:http://jsfiddle.net/galtschul/StbKg/

在单击按钮之前单击任何可编辑框并查看插入符号是否正确呈现。然后单击按钮,这将缩放文本区域并观察光标不闪烁......输入几个字符,然后向左箭头观察插入符号没有移动......然后再次输入观察字符被插入到预期的位置。

这是错误报告:https://bugs.webkit.org/show_bug.cgi?id=94985

急切地等待修复!!

【讨论】:

  • 为什么我必须等待 8 小时才能将其标记为正确答案!?
  • 没有比我刚刚给出的更好的答案了!我会在 7.5 小时后回来;)
【解决方案2】:

正如我所观察到的,这是由于 .isotope-item { position :absolute} 属性。 尝试了很多,但真的无法找出解决方案。

【讨论】:

  • 别以为是这样...我添加了“位置:相对!重要”,但我仍然观察到相同的行为。
  • 如果您尝试以下代码,您将找不到页面在左上角滚动...因为这是我的观察。 .isotope .isotope-item { -moz-transform: none !important;位置:相对!重要;向左飘浮; ] 你说的也是对的,这个 bug 存在于 firefox 浏览器渲染中......我们希望需要解决......
  • 这样做是因为它关闭了 Mozilla 中的转换。同位素插件还有一个名为“transformsEnabled”的选项,可以设置为 false。建议这样做,因为它会在所有浏览器中关闭此功能,这可能是目前最好的,直到浏览器齐心协力。
猜你喜欢
  • 2023-03-02
  • 2022-07-26
  • 1970-01-01
  • 2014-10-19
  • 2013-09-23
  • 1970-01-01
  • 1970-01-01
  • 2021-07-11
  • 1970-01-01
相关资源
最近更新 更多