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 一个自定义长度的文本自动换行的函数
Aug 19 Javascript
一些有用的JavaScript和jQuery的片段分享
Aug 23 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
Sep 15 Javascript
JavaScript加强之自定义callback示例
Sep 21 Javascript
jquery下div 的resize事件示例代码
Mar 09 Javascript
javascript实时获取鼠标坐标值并显示的方法
Apr 30 Javascript
JavaScript中数组的各种操作的总结(必看篇)
Feb 13 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
Jul 18 Javascript
加载 vue 远程代码的组件实例详解
Nov 20 Javascript
一百行JS代码实现一个校验工具
Apr 30 Javascript
JavaScript正则表达式验证登录实例
Mar 18 Javascript
使用Mock.js生成前端测试数据
Dec 13 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读取数据库信息的几种方法
2008/05/24 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
清空上传控件input file的值
2010/07/03 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
jquery实现一个简单好用的弹出框
2014/09/26 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
2017/01/11 Javascript
js实现二级导航功能
2017/03/03 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
2017/04/20 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
python+flask实现API的方法
2018/11/21 Python
python 杀死自身进程的实现方法
2019/07/01 Python
Javascript 高级手势使用介绍
2013/04/21 HTML / CSS
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
文明村镇申报材料
2014/05/06 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
购房协议书范本
2014/10/02 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
龙门石窟导游词
2015/02/02 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS