Tôi đang cố gắng hiển thị "hộp thoại bộ tải ajax" chặn giao diện (phương thức) nhưng không có lớp phủ.Hộp thoại JQuery Modal không có lớp phủ
Đây là cách tôi khởi tạo hộp thoại:
$("<div></div>").dialog({
modal: true,
dialogClass: "noOverlayDialog",
autoOpen: false, //opened later
...
});
tôi thêm CSS sau đây để ẩn các lớp phủ:
.ui-dialog.noOverlayDialog + .ui-widget-overlay { opacity: 0 !important; }
Tuy nhiên, khi tôi gọi dialog("open")
nhấp nháy lớp phủ sau đó biến mất, như thể Tôi đã ẩn nó bằng cách sử dụng Javascript. Hiệu ứng tương tự bằng cách sử dụng display:none;
hoặc visibility:hidden
.
Để đảm bảo đó là css xóa lớp phủ và không phải cái gì khác, tôi đã xóa dòng css và chắc chắn đủ lớp phủ hiện luôn hiển thị.
Tại sao điều này lại xảy ra? Tôi nghĩ CSS tĩnh không nên có loại hành vi này và lớp phủ phải được ẩn ngay lập tức mà không cần flash.
Nếu tôi không thể tìm thấy giải pháp trực quan, có thể thay thế sẽ đặt tùy chọn phương thức thành sai để ngăn lớp phủ lại với nhau và sau đó viết mã để có được hành vi bình thường. Dù bằng cách nào, tôi cần một giải pháp làm việc.
Tôi nghĩ rằng lựa chọn tốt nhất của bạn có thể là ghi đè lên các thuộc tính CSS thực được tự khai báo trong bảng kiểu jQueryUI mà nền tảng lớp phủ. Khi tôi nói ghi đè, tôi có nghĩa là không thay đổi CSS chính nó nhưng thêm các thuộc tính trong HTML làm việc của bạn và redeclare chúng. –
Đó không phải là những gì tôi đã làm? Vấn đề là tôi không cần nó toàn cầu nhưng chỉ áp dụng cho các hộp thoại cụ thể có lớp '.noOverlayDialog'. Nếu điều đó không thay đổi bạn gợi ý, hãy trả lời (không bình luận) với một ví dụ và tôi sẽ thử nó. Cảm ơn – parliament
Không vì bạn đang xác định lại thay vì ghi đè các lớp thực tế. –