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 相关文章推荐
JCalendar 日历控件 v1.0 beta[兼容IE&amp;Firefox] 有文档和例子
May 30 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
May 13 Javascript
js实现简单选项卡与自动切换效果的方法
Apr 10 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
Apr 12 Javascript
JS模拟bootstrap下拉菜单效果实例
Jun 17 Javascript
ES6扩展运算符用法实例分析
Oct 31 Javascript
Next.js项目实战踩坑指南(笔记)
Nov 29 Javascript
layui实现数据分页功能
Jul 27 Javascript
基于ajax实现上传图片代码示例解析
Dec 03 Javascript
JavaScript实现点击切换功能
Jan 27 Javascript
微信小程序APP的生命周期及页面的生命周期
Apr 19 Javascript
ant design charts 获取后端接口数据展示
May 25 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传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
php输出形式实例整理
2020/05/05 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
JavaScript判断textarea值是否为空并给出相应提示
2014/09/04 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
Python的函数的一些高阶特性
2015/04/27 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
python+os根据文件名自动生成文本
2019/03/21 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
python编程的核心知识点总结
2021/02/08 Python
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
linux下进程间通信的方式
2013/01/23 面试题
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
党委书记岗位职责
2013/11/24 职场文书
会计专业自我鉴定
2014/02/10 职场文书
民事赔偿协议书
2014/11/02 职场文书
先进个人推荐材料
2014/12/29 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
react中的DOM操作实现
2021/06/30 Javascript
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android