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类,兼容IE及Firefox
Jun 23 Javascript
javascript与CSS复习(二)
Jun 29 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
Jan 08 Javascript
jQuery+css+html实现页面遮罩弹出框
Mar 21 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
Nov 19 Javascript
javascript学习笔记(二)数组和对象部分
Sep 30 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
Jul 28 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
Mar 08 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
Jul 21 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
Feb 28 Javascript
使用微信小程序开发弹出框应用实例详解
Oct 18 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
Apr 07 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/12/25 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
js自定义事件代码说明
2011/01/31 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
JSON相关知识汇总
2015/07/03 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
2020/08/22 Javascript
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
python爬虫用mongodb的理由
2020/07/28 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
我的长生果教学反思
2014/04/28 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
服务理念标语
2014/06/18 职场文书
公司庆典欢迎词
2015/01/26 职场文书
中国汉字听写大会观后感
2015/06/02 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript