2011-12-25 36 views
5

Tôi muốn có màu nền trong suốt và tôi sử dụng bộ lọc gradient làm dự phòng của RGBA trong IE. Mã này giống như sau:Bộ lọc gradient của trình duyệt IE không phản hồi sự kiện nhấp chuột

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#bfffffff,endColorstr=#bfffffff); 

Tôi cũng muốn kích hoạt sự kiện khi người dùng nhấp vào nền, nhưng có vẻ như sự kiện nhấp chuột không được kích hoạt sau khi tôi đặt bộ lọc. Mọi thứ đều ổn mà không có bộ lọc.

Vì vậy, nó là một lỗi IE khác? Làm thế nào tôi có thể giải quyết vấn đề?

+0

Tôi hy vọng bạn biết rằng bộ lọc IE DX sử dụng #AARRGGBB thay vì #RRGGBBAA? –

+0

Có, tôi có. Và hiệu ứng trong suốt hoạt động tốt. Vấn đề là sự kiện nhấp chuột không thể được kích hoạt sau khi tôi áp dụng bộ lọc – bububut

+0

Tốt, tôi chỉ đảm bảo rằng bạn đã làm. (Nó khiến tôi không biết lần đầu tiên tôi gặp nó.) Tôi cho rằng nếu tôi quan tâm đúng đắn đến hình thức câu hỏi của bạn, tôi sẽ thấy những gì bạn đang làm. Tôi đã nghĩ chính xác kỹ thuật tương tự vài ngày trước ... một vấn đề thú vị mà bạn đã tìm thấy với nó, điều này có thể tiết kiệm thời gian cho tôi sau này nếu tôi sử dụng nó! –

Trả lời

6

Điều này có thể liên quan đến lỗi IE khiến cho liên kết với nền trong suốt không còn có thể nhấp nữa: Tôi đã xem qua nó ngay hôm nay. Tôi đã có một liên kết với một nền trong suốt và hiển thị thiết lập để chặn: khu vực chính của liên kết không thể nhấp được, nhưng một biên giới 10px tôi đặt trên nó được. Dường như IE cũng có vấn đề với bộ lọc.

Loại lỗi này được thảo luận herehere. Giải pháp của anh chàng đầu tiên là đưa hình nền giả vào phần tử trước khi thiết lập bộ lọc. Người thứ hai là cung cấp cho phần tử một màu nền và đặt độ mờ thành 1%, điều này sẽ làm cho nó trở nên vô hình trong IE. Hy vọng rằng bạn sẽ có thể nhận được vòng nó bằng cách sử dụng một trong những.

1

Đây không phải là giao dịch. Internet explorer tạo bộ lọc trên một lớp riêng biệt được đặt phía trên phần tử của bạn và vì lớp đồ họa mới không phải là một phần của phần tử - mà bạn có sự kiện nhấp vào - sẽ không có sự kiện bong bóng.

Gần đây tôi đã tạo thành phần nhãn với bộ lọc gradient đẹp cho IE. Chỉ có thể nhấp vào văn bản. Nếu tôi phân tích các lớp nhãn từ bên có và không có lớp gradient, thì bạn sẽ hiểu được vấn đề.

without gradient filter: 

------------------ 
text layer 
------------------ 
background layer 
------------------ 


with gradient filter: 

------------------ 
text layer 
------------------ 
gradient layer 
------------------ 
background layer 
------------------ 

Nhân tiện, đó là lý do tại sao bạn không thể đặt bán kính đường viền trên bộ lọc gradient. Thử nó. Tạo một phần tử, và tạo kiểu cho nó với bán kính đường viền và cho nó một bộ lọc gradient và chạy nó trong IE 9. Không có vấn đề làm thế nào bạn cố ép gradient nằm bên trong đường viền tròn - với ví dụ: overflow: hidden -, nó sẽ không bao giờ tuân theo. Nó giống như một phần tử riêng biệt được định vị tuyệt đối và ngay trên phần tử của bạn để che nó lên và ngay bên dưới văn bản.

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