【问题标题】:ExtJS component positioning bug in IE7IE7中ExtJS组件定位bug
【发布时间】:2013-03-04 06:32:21
【问题描述】:

下图是我所面临问题的简化版本。 #custom#ext-ct 都是手动编码的。一个 ExtJS 组件被渲染到#ext-ct。然后#custom 使用其display CSS 属性切换播放。在 IE7 中,显示#custom 会使组件粘在其初始位置,而隐藏#custom 会使组件向上移动。

我试图在 jsFiddle 中重现此错误,但未成功。我已经知道著名的“hasLayout”概念,所以我尝试将zoom:1 应用于#custom,然后我尝试this solution 仍然不成功。有没有人遇到过这种情况?是否有一个简单的修复方法来强制组件粘在其容器上?

【问题讨论】:

  • 没有看到更多的代码,我不知道是否有更好的方法可以做到这一点;但是考虑到您正在处理 IE7,可能没有一个。 Ext JS 布局系统的全部目的是从 DOM 中抽象应用程序,其中有大量丑陋的 hack 专门处理 IE 问题。附言我有一个私人问题要问你,如果你不介意的话,给我发电子邮件到 nohuhu [at] nohuhu [dot] org。

标签: position extjs4.1 internet-explorer-7 haslayout


【解决方案1】:

我发现了一个丑陋的修复,每次切换#custom 时我都会运行下面的代码:

if (Ext.isIE7) {
    Ext.get('custom').setStyle('zoom', 0);
    Ext.get('custom').setStyle('zoom', 1);
}

在找到更好的解决方法之前,我不会回答这个问题。

【讨论】:

  • 一个丑陋的浏览器的丑陋修复。老实说,您可能不会得到比这更好的解决方案。有重绘方法,如Ext.get('custom').repaint(),但我的结果好坏参半。
  • @Eric 嗨,埃里克。我同意你的看法。所以你遇到了同样的问题?我想以比在我的 js 文件中更简单的方式重现此错误,但它似乎非常具体。
  • 不是同样的问题,但类似的问题是 div 不能完全正确定位,除非我稍微戳一下样式。不过我的情况非常具体。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多