2011-08-09 20 views
6

Tôi chỉ muốn biết cách jQuery có thể tạo hiệu ứng mờ dần trong trình duyệt IE khi chúng không hỗ trợ opacity? Hoạt ảnh opacity là cách họ làm mờ dần trong các trình duyệt khác như Firefox và Chrome. Tôi đã đi vào mã nhưng thành thật mà nói tôi không thể tìm thấy bất cứ điều gì dễ hiểu đối với tôi!Cách jQuery làm "phai" trong IE8 trở xuống?

Trả lời

9

Từ nguồn jquery, họ về cơ bản phát hiện nếu opacity được hỗ trợ và nếu không, sử dụng bộ lọc alpha IES

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

sử dụng phong cách sau đây filter:alpha(opacity=40)

Các vấn đề liên quan