1

我正在尝试使用 Drew Dillard 的出色 DD_belatedPNG 修复 + jQuery 来实现悬停时的普通图像交换——但使用 PNG,并在 IE6 上工作。

例子:<a id="thelink" href="blah.html"><img src="f-u-ie6.png" /></a>

由于 DD 的脚本将原始图像的可见性设置为“隐藏”,因此您无法有效地将鼠标悬停在它上面。我注意到,很多人都被这个限制所阻挠。足以让 Drew 提到他将尝试在他的 PNG 修复程序的下一个版本中解决问题。

好吧,与此同时,我想我可以通过处理图像父级上的悬停事件来解决这个问题。因此,在鼠标悬停时,我将隐藏由 DD_belatedPNG 创建的 VML 对象,同时在“thelink”上设置背景图像,然后在鼠标输出时,再次显示 VML 对象并将背景图像设置为空。

以下代码只是为了看看我是否可以访问 VML 对象,但它不适用于 VML。它隐藏了所有其他的孩子,但不是 VML。有任何想法吗?

$(document).ready(function(){
  $("thelink").hover(function() {
    $(this).children().attr({ 
      style: "visibility:hidden"
    });
  }, function() {
    $(this).children().attr({ 
      style: "visibility:visible"
    });
  });
});

或者,任何人都可以提出一个很棒的PNG图像交换方法吗?我知道您可以交换链接的背景图像。但是你仍然需要在 A 标签内有一些东西。那不是我的情况。另外,您可以在 A 标签中放置一个透明的 GIF,并交换背景图像以达到效果,但我真的不想这样做。感谢您的见解!

4

1 回答 1

0

在查看了 innerHTML(在浏览器地址栏中使用 javascript)并查看了生成 VML 对象的代码之后,该对象在使用DD_belatedPNG修复程序时显示我的 PNG,我决定采取不同的策略。

我现在正在使用TwinHelix 的 IE PNG Fix。我在 A 标签中有 OFF 和 ON 状态 PNG,但 ON 状态图像设置为display: none. 我正在使用 jQuery 来切换这些图像。具体代码见我的另一篇文章

所有这些都是为了确保我的 PNG 翻转在 IE6 中工作。

于 2009-10-21T20:58:06.920 回答