日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IE中透明度的读写

發布時間:2024/9/5 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IE中透明度的读写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、獲取透明度

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獲取字符串操作吧!

?

二、設置透明度

  設置透明度有點麻煩,我們需要解決以下三個問題:

  •   用戶傳入值乘以100
  •   IE6、7下,元素只有觸發haslayout才能使透明度生效
  •   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+")";}

    ?

    轉載于:https://www.cnblogs.com/shytong/p/5539945.html

    總結

    以上是生活随笔為你收集整理的IE中透明度的读写的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。