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 相关文章推荐
NiftyCube——轻松实现圆角边框
Feb 20 Javascript
javascript 动态生成私有变量访问器
Dec 06 Javascript
再谈querySelector和querySelectorAll的区别与联系
Apr 20 Javascript
JavaScript支持的最大递归调用次数分析
Jun 24 Javascript
详解JS面向对象编程
Jan 24 Javascript
基于d3.js实现实时刷新的折线图
Aug 03 Javascript
微信小程序 弹框和模态框实现代码
Mar 10 Javascript
vue移动UI框架滑动加载数据的方法
Mar 12 Javascript
vue的过滤器filter实例详解
Sep 17 Javascript
基于vue实现一个禅道主页拖拽效果
May 27 Javascript
Element InfiniteScroll无限滚动的具体使用方法
Jul 27 Javascript
教你一步步实现一个简易promise
Nov 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中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
php文件操作相关类实例
2015/06/18 PHP
10个php函数实用却不常见
2015/10/13 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
PHP实现的XXTEA加密解密算法示例
2018/08/28 PHP
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
用svg制作富有动态的tooltip
2015/07/17 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
python放大图片和画方格实现算法
2018/03/30 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
Python 如何对文件目录操作
2020/07/10 Python
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
夫妻房产协议书的格式
2014/10/11 职场文书
投标承诺函范文
2015/01/21 职场文书
同学聚会感言一句话
2015/07/30 职场文书
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python
sql查询语句之平均分、最高最低分及排序语句
2022/05/30 MySQL