2012-12-07 11 views
16

Mam DIV "kontenera", który może mieć wszystkie możliwe style CSS, takie jak: margines, dopełnienie, obramowanie i inne położenie (stały, względny, bezwzględny).Jak dodać nakładkę DIV, aby pokryć istniejący DIV (używając JQuery)?

Chcę pokazać ikonę ładowania nad DIV "kontenera" i zabronić użytkownikowi obsługi dowolnej kontroli w DIV kontenera.

<div class="container"> 
A lot of content here ... 
</div> 

Jak mogę dodać DIV nakładki (jQuery), która obejmuje całą „kontener” DIV widoczny obszar (obszar margines nie powinny być pokryte)?

poważaniem, Zach

Odpowiedz

48

Jeśli nic zmieniać w CSS, a następnie:

$("<div />").css({ 
    position: "absolute", 
    width: "100%", 
    height: "100%", 
    left: 0, 
    top: 0, 
    zIndex: 1000000, // to be on the safe side 
    background: "url(/img/loading.gif) no-repeat 50% 50%" 
}).appendTo($(".container").css("position", "relative")); 

DEMO:http://jsfiddle.net/jKfTC/

+1

także może być dobry pomysł, aby sprawdzić, czy '.container 'ma 'statyczne' pozycjonowanie przed ustawieniem jego pozycji ... tylko po to, aby twój kod mógł być ponownie użyty. –

+4

Zalecam, aby wcześniej zdefiniować wszystkie stylizacje w pliku css, zamiast używać go w locie z jQuery. Podobnie jak w przypadku http://jsfiddle.net/jKfTC/1/ – 3dgoo

+0

Jeśli kontener ma ramkę, granica nie jest objęta powyższym rozwiązaniem. – Zach