Dropbox 如何制作透明 PNG +不透明度在 IE 上起作用吗?

发布于 2024-10-06 20:26:48 字数 337 浏览 2 评论 0原文

我在 www.dropbox.com 上看到,watch_a_video2.png 图像是透明的 PNG 图像,不透明度设置为 0.5。当您将鼠标悬停在其上时,不透明度会发生变化。

他们是如何做到在 IE7/8 下 watch_a_video2.png 图像周围没有黑色轮廓的?

我没有看到任何过滤器或特定的 IE 修复库...

我尝试用 Jquery 重现它们的样式,它在 Firefox/Safari 上工作得很好,但在 IE 上我得到了黑色轮廓。

感谢您的帮助。

替代文本

I see that on www.dropbox.com, the watch_a_video2.png image is a transparent PNG image with an opacity set to 0.5. When you mouse over it the opacity change.

How are they doing to not have a dark outline around the watch_a_video2.png image with IE7/8?

I don't see any filter or specific IE fix library...

I try to reproduce their style with Jquery and it works fine with Firefox/Safari but I get a dark outline with IE.

Thanks for your help.

alt text

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怪我入戏太深 2024-10-13 20:26:48

他们正在使用原型(一个类似于 JQuery 的 JavaScript 框架)。这段代码似乎达到了效果(换句话说,它们不仅仅是使用 css):

document.observe("dom:loaded", function () { 

    var play_link = $("playvideo");

    play_link.observe("mouseover", function () {
        new Effect.Opacity(play_link.down("img"), { duration: 0.2, to: 1.0 });
    });

    play_link.observe("mouseout", function () {
        new Effect.Opacity(play_link.down("img"), { duration: 0.2,  to: 0.5 });
    })


    if (!FlashDetect.versionAtLeast(9)) {
        $("has_flash").hide();
        $("no_flash").show();
    }
});

这段代码适用的 HTML:

<a href="#" id="playvideo" onclick="play_screencast(); return false;">
    <img src="images/watch_a_video2.png"  alt="Watch a video about Dropbox."/><br />
    Watch a Video
</a>

您可能还必须在 css 中设置类似的内容:

a {text-decoration:none;}
img { border:none;}
/* of course you'd probably want to use a class or id on these elements */

上面的 css 将删除下划线链接和图像的边框。

最后,如果您可以发布您的实际代码,它可能会有所帮助(我无法在 IE8 中看到蓝色轮廓)。

They are using prototype (a JavaScript framework kinda like JQuery). This code appears to achieve the effect (in other words they are not simply using css):

document.observe("dom:loaded", function () { 

    var play_link = $("playvideo");

    play_link.observe("mouseover", function () {
        new Effect.Opacity(play_link.down("img"), { duration: 0.2, to: 1.0 });
    });

    play_link.observe("mouseout", function () {
        new Effect.Opacity(play_link.down("img"), { duration: 0.2,  to: 0.5 });
    })


    if (!FlashDetect.versionAtLeast(9)) {
        $("has_flash").hide();
        $("no_flash").show();
    }
});

The HTML that this code applies to:

<a href="#" id="playvideo" onclick="play_screencast(); return false;">
    <img src="images/watch_a_video2.png"  alt="Watch a video about Dropbox."/><br />
    Watch a Video
</a>

You would probably have to set something like this in the css as well:

a {text-decoration:none;}
img { border:none;}
/* of course you'd probably want to use a class or id on these elements */

The above css will remove the underline from the link, and the border from the image.

Lastly, if you could post your actual code it may be helpful (I was unable to see the blue outline in IE8).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文