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 相关文章推荐
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
May 10 Javascript
flexigrid 参数说明
Nov 23 Javascript
一些主流JS框架中DOMReady事件的实现小结
Feb 12 Javascript
jQuery setTimeout()函数使用方法
Apr 07 Javascript
JavaScript函数的4种调用方法详解
Apr 22 Javascript
javascript 实现 原路返回
Jan 21 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
Feb 09 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
Mar 13 Javascript
JavaScript通过filereader接口读取文件
May 10 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
Jan 20 Javascript
如何把vuejs打包出来的文件整合到springboot里
Jul 26 Javascript
JavaScript Blob对象原理及用法详解
Oct 14 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 Mysql日期和时间函数集合
2007/11/16 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
Javascript基础教程之break和continue语句
2015/01/18 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
Vue实现本地购物车功能
2018/12/05 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
初学Python实用技巧两则
2014/08/29 Python
python实现基于SVM手写数字识别功能
2020/05/27 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
Selenium向iframe富文本框输入内容过程图解
2020/04/10 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
后勤园长自我鉴定
2013/10/17 职场文书
建筑专业自荐信
2013/10/18 职场文书
学生干部学习的自我评价
2014/02/18 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
董事长助理工作职责范本
2014/07/01 职场文书
建筑安全责任书范本
2014/07/24 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
高一地理教学工作总结
2015/08/12 职场文书
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/04/22 无线电
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python