2013-10-24 14 views

Trả lời

29

Trước tiên, bạn cần thay đổi cấu trúc của tài liệu. Nó sẽ giống như thế này

<body> 
    <div class="supreme-container">all your content goes here except for the modal</div> 
    <div id="myModal" class="modal fade">This is your modal.</div> 
</body> 

Và sau đó trong css

body.modal-open .supreme-container{ 
    -webkit-filter: blur(1px); 
    -moz-filter: blur(1px); 
    -o-filter: blur(1px); 
    -ms-filter: blur(1px); 
    filter: blur(1px); 
} 
+0

Nhưng không hoạt động trong MSIE 9 và Firefox. – eugenes

+1

Có một cách để làm cho nó hoạt động trong IE và Firefox chi tiết [ở đây] (http://stackoverflow.com/a/15813429/1563940). Tôi không biết chắc chắn rằng nó hoạt động, mặc dù. – lucian

+0

Nếu phương thức bên trong container? – lifecom

4

Tôi nghĩ rằng cách dễ nhất để đạt được điều này là để áp dụng một lớp blur đến các yếu tố nền tảng sử dụng jQuery khi phương thức được mở. Di blur khi phương thức được đóng ...

.blur { 
    box-shadow: 0px 0px 20px 20px rgba(255,255,255,1); 
    text-shadow: 0px 0px 10px rgba(51, 51, 51, 0.9); 
    transform: scale(0.9); 
    opacity: 0.6; 
} 

http://bootply.com/74705

6

Nếu bạn đang sử dụng boostrap sau đó nội dung của bạn là đã có trong một số loại container. Vì vậy, điều này phù hợp với tôi mà không cần phải sửa đổi HTML hoặc bất kỳ JS bổ sung nào:

.modal-open .container-fluid, .modal-open .container { 
    -webkit-filter: blur(5px) grayscale(90%); 
} 
+0

đây là giải pháp tốt nhất. –

+0

Đây là một trong những hiệu ứng những gì tôi đang tìm kiếm! Cảm ơn người đàn ông! –

+0

Tôi đã thử điều này, nhưng không thực sự làm các trick (Tôi đang sử dụng React và React Bootstrap). Những gì tôi đã làm dựa trên câu trả lời của bạn và làm việc cho tôi: 'body.modal-open #root { -webkit-filter: làm mờ (5px) thang độ xám (90%); } ' –

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