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 相关文章推荐
单击复制文字兼容各浏览器的完美解决方案
Jul 04 Javascript
JS实现日期加减的方法
Nov 29 Javascript
在Firefox下js select标签点击无法弹出
Mar 06 Javascript
js实现编辑div节点名称的方法
Dec 17 Javascript
JavaScript实现网页对象拖放功能的方法
Apr 15 Javascript
javascript元素动态创建实现方法
May 13 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
Jan 31 Javascript
在线引用最新jquery文件的实现方法
Aug 26 Javascript
easyui combobox开启搜索自动完成功能的实例代码
Nov 08 Javascript
详解react服务端渲染(同构)的方法
Sep 21 Javascript
vue权限管理系统的实现代码
Jan 17 Javascript
基于JavaScript实现轮播图效果
Jan 02 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一个名片库程序
2006/10/09 PHP
PHP+MySQL5.0中文乱码解决方法
2006/11/20 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
PHP使用文件锁解决高并发问题示例
2018/03/29 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
2017/03/21 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
2018/09/25 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
对python中UDP,socket的使用详解
2019/08/22 Python
详解torch.Tensor的4种乘法
2020/09/03 Python
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
html5 拖拽及用 js 实现拖拽功能的示例代码
2020/10/23 HTML / CSS
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
澳洲网红粉泥面膜:Sand & Sky
2019/08/13 全球购物
PHP中如何使用Cookie
2015/10/28 面试题
超市中秋节活动方案
2014/02/12 职场文书
中秋晚会策划方案
2014/06/12 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
python APScheduler执行定时任务介绍
2022/04/19 Python