Tôi có một giải pháp đơn giản dưới đây cho việc này hoàn toàn phù hợp với tôi.
Trước hết, tạo một CSS có tên lớp Lockon là lớp phủ trong suốt cùng với việc tải GIF như dưới đây
.LockOn {
display: block;
visibility: visible;
position: absolute;
z-index: 999;
top: 0px;
left: 0px;
width: 105%;
height: 105%;
background-color:white;
vertical-align:bottom;
padding-top: 20%;
filter: alpha(opacity=75);
opacity: 0.75;
font-size:large;
color:blue;
font-style:italic;
font-weight:400;
background-image: url("../Common/loadingGIF.gif");
background-repeat: no-repeat;
background-attachment: fixed;
background-position: center;
}
Bây giờ chúng ta cần tạo div của mình với lớp này bao phủ toàn bộ trang dưới dạng lớp phủ bất cứ khi nào trang được tải
<div id="coverScreen" class="LockOn">
</div>
Bây giờ chúng tôi cần ẩn màn hình bìa này bất cứ khi nào trang sẵn sàng và để chúng tôi có thể hạn chế người dùng nhấp / bắn bất kỳ sự kiện nào cho đến khi trang sẵn sàng
$(window).on('load', function () {
$("#coverScreen").hide();
});
Giải pháp trên sẽ ổn bất cứ khi nào trang đang tải.
Bây giờ câu hỏi là sau khi trang được tải, bất cứ khi nào chúng tôi nhấp vào nút hoặc sự kiện sẽ mất nhiều thời gian, chúng tôi cần hiển thị điều này trong sự kiện nhấp vào máy khách như dưới đây
$("#ucNoteGrid_grdViewNotes_ctl01_btnPrint").click(function () {
$("#coverScreen").show();
});
Điều đó có nghĩa là khi chúng tôi nhấp vào nút in này (sẽ mất nhiều thời gian để báo cáo), nó sẽ hiển thị màn hình bìa của chúng tôi với GIF, kết quả và một khi trang đã sẵn sàng phía trên cửa sổ, chức năng tải sẽ kích hoạt và ẩn màn hình bìa một khi màn hình được tải đầy đủ.