2011-08-09 9 views
6

मैं सिर्फ यह जानना चाहता था कि jQuery आईई ब्राउज़र में फीका प्रभाव कैसे उत्पन्न कर सकता है जब वे opacity का समर्थन नहीं करते हैं? एनिमेटिंग opacity वे फ़ायरफ़ॉक्स और क्रोम जैसे अन्य ब्राउज़रों में फीका करते हैं। मैं कोड में गया लेकिन ईमानदारी से मुझे कुछ भी समझ में नहीं आया!jQuery कैसे IE8 और नीचे "फीका" करता है?

उत्तर

9

का उपयोग कर jQuery स्रोत से, वे मूल रूप से अगर अस्पष्टता समर्थित है का पता लगाने और यदि नहीं, का उपयोग आईईएस अल्फा फिल्टर

if (!jQuery.support.opacity) { 
jQuery.cssHooks.opacity = { 
    get: function(elem, computed) { 
     // IE uses filters for opacity 
     return ropacity.test((computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "") ? 
      (parseFloat(RegExp.$1)/100) + "" : 
      computed ? "1" : ""; 
    }, 

    set: function(elem, value) { 
     var style = elem.style, 
      currentStyle = elem.currentStyle; 

     // IE has trouble with opacity if it does not have layout 
     // Force it by setting the zoom level 
     style.zoom = 1; 

     // Set the alpha filter to set the opacity 
     var opacity = jQuery.isNaN(value) ? 
      "" : 
      "alpha(opacity=" + value * 100 + ")", 
      filter = currentStyle && currentStyle.filter || style.filter || ""; 

     style.filter = ralpha.test(filter) ? 
      filter.replace(ralpha, opacity) : 
      filter + " " + opacity; 
    } 
}; 
} 
3

निम्नलिखित शैली filter:alpha(opacity=40)

संबंधित मुद्दे