本文详解如何在原生JavaScript和jQuery中设置元素透明度,重点解决IE与Firefox等浏览器的兼容性问题。通过对比filter与opacity属性的使用差异,并提供完整的淡入淡出示例代码,帮助开发者实现跨浏览器的透明度控制效果。
透明度设置概述
在网站开发中,经常需要设置元素透明度,例如实现图片的淡入淡出效果。以下介绍在原生JavaScript和jQuery中设置透明度的相关方法及注意事项: 1. 透明度样式设置 不同浏览器对透明度的实现方式存在差异。IE浏览器使用filter: alpha属性,而Firefox等标准浏览器使用opacity属性。示例中设置透明度为30%: IE:filter: alpha(opacity:30); Firefox:opacity(0.3); 2. 原生JavaScript设置透明度 为了兼容IE与其他浏览器,需要同时设置上述两种样式;
代码示例如下:
var alpha = 30; //透明度值变量
var oDiv = document.getElementById('div1'); //获取DOM元素对象
oDiv.style.filter = 'alpha(opacity:'+alpha+')'; //设置IE的透明度
oDiv.style.opacity = alpha / 100; //设置fierfox等透明度,注意透明度值是小数 jQuery设置透明度
3 jQuery设置透明度
jQuery框架对透明度的设置进行了封装,兼容IE及其他主流浏览器。只需修改opacity属性值即可,该属性值需为小数,因此只需设置一次即可生效。
代码示例如下:
$(function(){
$("#div1").css("opacity","0.3"); //设置透明度
}); 原生JS淡入淡出示例
4 一个示例
以下示例使用原生JavaScript实现div元素的淡入淡出效果:当鼠标移入div区域时,透明度设为100%;当鼠标移出div区域时,透明度设为30%,并通过定时器控制透明度变化的动画效果。
代码示例如下:
window.onload=function()
{
var oDiv = document.getElementById('div1');//获取div的DOM对象
oDiv.onmouseover = function() //鼠标移入方法
{
startMove(100);
};
oDiv.onmouseout = function() //鼠标移出方法
{
startMove(30);
};
}
var timer = null;//时间对象
var alpha = 30;//透明度初始值
function startMove(iTarget)
{
var oDiv = document.getElementById('div1');
clearInterval(timer);//清空时间对象
timer = setInterval(function(){
var speed = 0;
if(alpha < iTarget)
{
speed =5;
}
else
{
speed = -5;
}
if(alpha == iTarget)
{
clearInterval(timer);
}
else
{
alpha +=speed; //透明度值增加效果
oDiv.style.filter = 'alpha(opacity:'+alpha+')'; //设置IE透明度
oDiv.style.opacity = alpha / 100; //设置其他浏览器
}
},30);
}