兼容多浏览器实现半透明(Opera ie firefox)

所属分类: 网络编程 / CSS/HTML 阅读数: 1889
收藏 0 赞 0 分享
Click on a link above to make the image disappear and re-appear by gradually fading in/out. It uses CSS transparency, in CSS you can set the transparency in different ways. To ensure that it works on most browsers we use all three.

opacity: 0.5;
This one is the official CSS3 method, at the moment it works in newer Mozilla versions. 
-moz-opacity: 0.5;
This one works in older versions of Mozilla and Phoenix/FireBird/FireFox. 
-khtml-opacity: 0.5;
This is used by browsers that use teh KHTML rendering engine, namely Konquerer on Linux and Safari on MacOS. 
filter: alpha(opacity=50);
This one works only in MSIE. 
There is actually another one: -khtml-opacity: 0.5; works for the browsers Konquerer on Linux and Safari on MacOS. You could add it too if you want to support these users. Somewhere in the near future most browsers will support CSS3 and opacity: 0.5; should work everywhere.
复制代码 代码如下:

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}

function shiftOpacity(id, millisec) {
    //if an element is invisible, make it visible, else make it ivisible
    if(document.getElementById(id).style.opacity == 0) {
        opacity(id, 0, 100, millisec);
    } else {
        opacity(id, 100, 0, millisec);
    }
}

function blendimage(divid, imageid, imagefile, millisec) {
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //set the current image as background
    document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")";

    //make image transparent
    changeOpac(0, imageid);

    //make new image
    document.getElementById(imageid).src = imagefile;

    //fade in image
    for(i = 0; i <= 100; i++) {
        setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
        timer++;
    }
}

function currentOpac(id, opacEnd, millisec) {
    //standard opacity is 100
    var currentOpac = 100;

    //if the element has an opacity set, get it
    if(document.getElementById(id).style.opacity < 100) {
        currentOpac = document.getElementById(id).style.opacity * 100;
    }

    //call for the function that changes the opacity
    opacity(id, currentOpac, opacEnd, millisec)
}

更多参考
http://www.brainerror.net/scripts_js_blendtrans.php
http://realazy.org/blog/2006/03/21/ie-firefox-opera-alpha-transparency/
http://alistapart.com/stories/pngopacity/
更多精彩内容其他人还在看

input文本框样式代码实例

input文本框样式代码实例
收藏 0 赞 0 分享

div+css实现自适应宽度按钮

div+css实现自适应宽度按钮
收藏 0 赞 0 分享

h1标签的使用技巧

h1标签的使用技巧
收藏 0 赞 0 分享

base href 使用方法详解

base href 使用方法详解
收藏 0 赞 0 分享

html label标签的使用教程

html label标签的使用教程
收藏 0 赞 0 分享

使用CSS不用程序实现文字自动截断 用省略号代替

使用CSS不用程序实现文字自动截断 用省略号代替
收藏 0 赞 0 分享

CSS hack实现 CSS完美兼容IE6/IE7/FF的通用方法

CSS hack实现 CSS完美兼容IE6/IE7/FF的通用方法
收藏 0 赞 0 分享

网页布局+纯CSS纵向下拉菜单 IE6/IE7兼容

网页布局+纯CSS纵向下拉菜单 IE6/IE7兼容
收藏 0 赞 0 分享

CSS图片拼合生成器只需上传zip包即可

CSS图片拼合生成器只需上传zip包即可
收藏 0 赞 0 分享

用iframe margin实现调用其他网页的某一区域的方法

用iframe margin实现调用其他网页的某一区域的方法
收藏 0 赞 0 分享
查看更多