js和jQuery设置Opacity半透明 兼容IE6


Posted in Javascript onMay 24, 2016

1.css设置透明度

透明度在IE浏览器和其他相关浏览器中的设置方法是不一样的,IE使用滤镜filter的alpha属性,firefox和其它浏览器不支持滤镜,它们使用opactiy属性设置透明度,下面示例设置透明度为30%:

IE:filter: alpha(opacity:30);
firefox:opacity(0.3);

2.使用js设置透明度

为了兼容IE与其他浏览器对透明度的设置,我们需要对以上两种样式分别进行设置。下面是一段示例代码:

var alpha = 30; //透明度值变量

var oDiv = document.getElementById('div1'); //获取DOM元素对象

oDiv.style.filter = 'alpha(opacity:'+alpha+')'; //设置IE的透明度

oDiv.style.opacity = alpha / 100; //设置fierfox等透明度,注意透明度值是小数

3.jQuery设置透明度

jQuery中对透明度的设置进行了整合,兼容IE和其他浏览器,修改opactiy属性值即可,值为小数,因此只需要设置一次即可。下面是一段示例代码:

$(function(){

  $("#div1").css("opacity","0.3"); //设置透明度

});

由此可见,使用jQuery进行透明度设置,大大减少了代码编写的难度,同时可以很好地保证不同浏览器的兼容性,但是使用jQuery需要导入jQuery的库文件,在某些场合会给站点的访问速度造成影响,如果要求不是太高,我们也可以直接使用js实现我们需要的效果,下面给出一段使用js实现半透明效果的完整示例代码。

4.应用实例

该实例使用原生js实现一个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);

}

window的onload函数指定了在页面加载的时候需要执行的方法,document.getElementById实现通过元素的id得到元素对象,然后通过得到对象的onmouseover绑定了鼠标移到指定层上面时对应需要执行的函数,该实例执行startMove(100),鼠标移出层通过onmouseout绑定对应的执行函数,该实例执行startMove(30)。

startMove函数实现的功能是将指定元素的透明度设置为传入参数iTarget,范围需要在0-255之间,并使用setInterval启动了一个定时器实现动画效果。

总结:说到底就两个属性,一个是这对火狐,谷歌这类浏览器的属性opacity(0.3)直接设置一个小数即可,另一个针对IE的属性filter: alpha(opacity:30),都设置好即可,另外jQuery大大简化了相应的操作,如果网站上用到了jQuery的库,还是很推荐使用jQuery的方法的。

Javascript 相关文章推荐
解析使用JS 清空File控件的路径值
Jul 08 Javascript
初步认识JavaScript函数库jQuery
Jun 18 Javascript
教你JS中的运算符乘方、开方及变量格式转换
Aug 09 Javascript
H5移动端适配 Flexible方案
Oct 24 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
Feb 27 Javascript
javaScript手机号码校验工具类PhoneUtils详解
Dec 08 Javascript
JS实现将二维数组转为json格式字符串操作示例
Jul 12 Javascript
vue-cli 构建骨架屏的方法示例
Nov 08 Javascript
vue实现路由懒加载及组件懒加载的方式
Jun 11 Javascript
jQuery实现的记住帐号密码功能完整示例
Aug 03 jQuery
移动端JS实现拖拽两种方法解析
Oct 12 Javascript
原生JavaScript实现五子棋游戏
Nov 09 Javascript
浅析jquery unbind()方法移除元素绑定的事件
May 24 #Javascript
jQuery unbind 删除绑定事件详解
May 24 #Javascript
深入理解jQuery之防止冒泡事件
May 24 #Javascript
30分钟快速掌握Bootstrap框架
May 24 #Javascript
JQuery 传送中文乱码问题的简单解决办法
May 24 #Javascript
深入理解jQuery中的事件冒泡
May 24 #Javascript
jQuery 弹出层插件(推荐)
May 24 #Javascript
You might like
php简单图像创建入门实例
2015/06/10 PHP
PHP错误处理函数
2016/04/03 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
JavaScript字符串常用的方法
2016/03/10 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
JavaScript 栈的详解及实例代码
2017/01/22 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
Python3实现Web网页图片下载
2016/01/28 Python
python pandas dataframe 按列或者按行合并的方法
2018/04/12 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
写给女朋友的检讨书
2014/01/28 职场文书
2014信息公开实施方案
2014/02/22 职场文书
工程技术员岗位职责
2014/03/02 职场文书
调研汇报材料范文
2014/08/17 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
电影雨中的树观后感
2015/06/15 职场文书
消防演习感想
2015/08/10 职场文书