0

我有一个内容管理工具,它使用 iframe 在页面上堆叠内容块。系统会将每个块的内容加载到 iframe 中,以及封面和一些用于编辑功能(编辑、删除、复制和移动)的按钮。封面只出现在鼠标悬停时(使用 CSS :hover 伪类),所以页面的内容看起来和它的实际一样,除非用户将鼠标悬停在他们想要编辑的块上。这一切都很好。

问题来自移动块。我开发了一个拖放系统来移动积木。用户将鼠标放在移动图标上,然后将块拖动到他们需要的位置。在鼠标按下时,块本身(整个 iframe)被隐藏(显示:无),并被相同形状的阴影 div 替换,然后被拖动。如果用户选择将块放到一个新的地方,一切正常,但如果他们把它放到其他任何地方,操作就会被取消。阴影被破坏,原来的 iframe 被重新显示。

现在的问题:当原来的 iframe 重新显示时,它仍然认为鼠标悬停在它上面,并且所有只显示在 :hover 伪类下的图层都在显示(在 FireFox 和 IE 中 - 不是在 Chrome 中) . 将鼠标移到块上然后再次移出会重置 iframe 状态,但我正在寻找一种方法来强制 iframe 重新评估鼠标位置,而无需用户执行任何操作。

一种解决方案是用鼠标事件和指定类替换伪类的使用,但我想知道是否还有其他解决方案。

4

1 回答 1

0

除非您只针对最新的浏览器(在较旧的 IE 中,除了锚点之外没有原生 :hover 事件),否则您应该跳过 :hover 方法并使用您(正确)假设的解决方案 - 意思是使用css 类和 js 事件来确定块的状态。

于 2012-07-11T10:13:53.250 回答