一、获取透明度

ele.filters.alpha

返回元素所有滤镜的对象,可在此基础上获取opacity即可。

  但是似乎ele.filters只能存储第一个滤镜,而当我们把alpha放在第二位时,就无法获取到了,下面是验证。

#q{
font-size:20px;
float:left;
filter:alpha(opacity=50),DropShadow(Color=black, OffX=10px, OffY=10px, Positive=positive);
} console.dir(q.currentStyle.filter);
console.dir(q.filters);

结果如下:

  所以,我们尽量使用style.filter获取字符串操作吧!

二、设置透明度

  设置透明度有点麻烦,我们需要解决以下三个问题:

  1.   用户传入值乘以100
  2.   IE6、7下,元素只有触发haslayout才能使透明度生效
  3.   IE8下,透明度设置为100会使文本模糊,需要清楚该滤镜

问题解决:

1.第一个问题,解决起来比较简单,代码如下

value=(value>0.999)?100:(value<0.001)?0:value*100

2.第二个问题,我们检测元素是否触发了haslayout,如果没有,将他的zoom属性设置为1

3.第三个问题,当存在多个滤镜的时候,我们只清掉透明部分

var rfilters=/[\w:\.]+\([^)]+]\)/g;
var filter=ele.currentStyle.filter||ele.style.filter||"";
value=style.filter=filter.replace(rfilters,function(a){
return /alpha/i.test(a)?"":a;
})

  解决完了上述问题,我们就可以正式来设置啦!首先如果我们的opacity可以用node.filters获取到,我们就可以直接设置;如果不能,我们就只能用字符串的方法了。

var alpha=ele.filters.alpha||ele.filters[salpha];//ele.filters[salpha]为了照顾其他两种很长的设置透明滤镜的方法,这里就懒得写了
if(alpha){
alpha.opacity=value;
}else{
el.style.filter=(el.style.filter?el.style.filter+",":"")+"alpha(opacity="+value+")";
}

IE中透明度的读写的更多相关文章

  1. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  2. C++中文件的读写

    C++中文件的读写 在C++中如何实现文件的读写? 一.ASCII 输出 为了使用下面的方法, 你必须包含头文件<fstream.h>(译者注:在标准C++中,已经使用<fstrea ...

  3. MATLAB中文件的读写和数据的导入导出

    http://blog.163.com/tawney_daylily/blog/static/13614643620111117853933/ 在编写一个程序时,经常需要从外部读入数据,或者将程序运行 ...

  4. kernel中文件的读写操作可以使用vfs_read()和vfs_write

    需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() fil ...

  5. (六)kernel中文件的读写操作可以使用vfs_read()和vfs_write

    需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() fil ...

  6. VC 使用msxml6.dll动态链接库中的函数读写XML文件

    VC 使用msxml6.dll动态链接库中的函数读写XML文件 目录 1 引言 2 .dll使用方法 3 常用函数总结 4 实例应用 5 运行效果预览 6 补充说明 7 不足之处 8 更新   引言: ...

  7. 【python系统学习17】python中的文件读写

    python中的文件读写 文件读写,是Python代码调用电脑文件的主要功能,能被用于读取和写入文本.音频片段.Excel文档.邮件以及任何保存在电脑上的东西. 可使用python批量的操作本地文件, ...

  8. .Net MVC 网站中配置文件的读写

    网站中有很多需要设置的内容,像网站信息,注册设置,上传设置等.如果保存在数据库中需要单独建张表,表中只有一条记录,这样会让数据库很臃肿,而且频繁存取数据库的效率也是个问题.而保存在config文件里是 ...

  9. 在c#中IO流读写操作

    1.使用FileStream读写文件 文件头: using System;using System.Collections.Generic;using System.Text;using System ...

随机推荐

  1. [待完善]mycat使用(一)

    生产上的mycat已经投入使用,这次的应用场景是数据写入和查询都非常大的一个需求,而且经常出现多表join的查询 1.应用上线没多久出现大量慢查询: 分片键的选择率非常高,但没有建索引,在其上加上索引 ...

  2. struts2访问web资源

    通过ActionContext访问 public class TestActionContextAction { public String execute(){ //获取 ActionContext ...

  3. How to fix "FAILURE DURING CONVERSION TO COFF: FILE INVALID OR CORRUPT"

    Error LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt appear ...

  4. (spfa) Highway Project (zoj 3946 )

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5718   Highway Project Time Limit: 2 Seco ...

  5. java基础-day17

    第06天 集合 今日内容介绍 u  集合&迭代器 u  增强for & 泛型 u  常见数据结构 u  List子体系 第1章   集合&迭代器 1.1  集合体系结构 1.1 ...

  6. Java的StringBuffer和StringBuilder类

    StringBuffer (字符串缓冲对象) 概念:用于表示可以修改的字符串,称为字符串缓冲对象 作用:使用运算符的字符串将自动创建字符串缓冲对象 例如: str1+str2的操作,实际上是把str1 ...

  7. 关于CentOS下 yum包下载下的rpm包放置路径

    在CentOS下用yum安装,回发现在/var/cache/yum/下的base.extrs和updates下的packages下都没有发现下载的RPM 原来在/etc/yum.conf下没有设置下载 ...

  8. hdu 1.3.2 Moving Tables

    这道题比较简单,就是用数组存取其路径.如101和102是对门,其过道号可以记为51.  1和2之间的为1. 今早突然收到操作系统停课的通知,哈哈 回来就做一下水题,开心 #include<cst ...

  9. Kali Linux渗透测试实战 2.1 DNS信息收集

    目录 2.1 DNS信息收集1 2.1.1 whois查询3 2.1.2 域名基本信息查询4 Dns服务器查询4 a记录查询4 mx记录查询5 2.1.3 域名枚举5 fierse 5 dnsdict ...

  10. JS学习笔记2_面向对象

    1.对象的定义 ECMAScript中,对象是一个无序属性集,这里的“属性”可以是基本值.对象或者函数 2.数据属性与访问器属性 数据属性即有值的属性,可以设置属性只读.不可删除.不可枚举等等 访问器 ...