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常见表单应用技巧
Jan 09 Javascript
JS在IE和FF下attachEvent,addEventListener学习笔记
Nov 26 Javascript
解决jquery的.animate()函数在IE6下的问题
Dec 03 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
Sep 13 Javascript
Vue结合原生js实现自定义组件自动生成示例
Jan 21 Javascript
Bootstrap Table使用整理(三)
Jun 09 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
Oct 24 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
Jul 30 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
Aug 16 Javascript
js简单实现自动生成表格功能示例
Jun 02 Javascript
js实现批量删除功能
Aug 27 Javascript
JavaScript实现4位随机验证码的生成
Jan 28 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
基于mysql的论坛(1)
2006/10/09 PHP
php中static静态变量的使用方法详解
2010/06/04 PHP
PHP开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
PHP加Nginx实现动态裁剪图片方案
2014/03/10 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
cakephp常见知识点汇总
2017/02/24 PHP
学习ExtJS border布局
2009/10/08 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
JavaScript中的相等操作符使用详解
2019/12/21 Javascript
原生JS实现萤火虫效果
2020/03/07 Javascript
python切换hosts文件代码示例
2013/12/31 Python
Python命名空间详解
2014/08/18 Python
Python正则表达式完全指南
2017/05/25 Python
利用Python破解斗地主残局详解
2017/06/30 Python
TensorFlow损失函数专题详解
2018/04/26 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
django跳转页面传参的实现
2020/09/17 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
倡议书格式
2014/08/30 职场文书
批评与自我批评总结
2014/10/17 职场文书
领导班子整改措施
2014/10/24 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
部分武汉产收音机展览
2022/04/07 无线电