2013-06-11 10 views
5

Sto creando un sito Web in cui ci sono 4 div di dimensioni uguali. Se I fa clic su qualsiasi div it ingrandisce per coprire i rimanenti 3 div. Per ottenere questo ho bisogno di utilizzare z-index proprietà. Non specifico z-index nello stile e lo aggiungo solo usando jQuery quando clicco su qualsiasi div. Ecco il mio codice per un div:Come rimuovere la proprietà z-index utilizzando jQuery

<div id="one" style="background: #58D3F7; height: 200px; width: 200px; position: absolute; 
    margin-left: 410px; margin-top: 202px; float: left; cursor: pointer; text-align: center;"></div> 

E qui è il codice jQuery per massimizzare:

$(function() { 
    var state = true; 
    $("#one").click(function() { 
     if (state) { 
      $("#one").animate({ 
       height: 300, 
       top: -100 
      }, 1000); 
      $("#one").css({ "z-index": "1" }); 
      $("#one").animate({ 
       width: 300, 
       left: -100 
      }, 1000); 
      $("#itxt1").animate({ 
       color: "#58D3F7" 
      }, 1000); 
      $("#one").animate({ 
       height: 650, 
       width: 650 
      }, 1000); 
     } else { 
      $("#one").animate({ 
       backgroundColor: "#58D3F7", 
       height: 200, 
       width: 200, 
       left: 8, 
       top: 8, 
       opacity: 1 
      }, 1000); 
      $("#one").removeAttr("z-index"); 
     } 
     state = !state; 
    }); 
}); 

Il codice precedente funziona bene, tranne quando si fa clic per la seconda volta div di ridurre al minimo, la z la proprietà dell'indice rimane. Voglio che vada. Come posso raggiungere questo obiettivo?

+0

Grazie ragazzi sta funzionando bene. Ma sto affrontando un altro problema.viene istantaneamente, non appena faccio clic sul div, la proprietà z-index svanisce e le div rimanenti vengono mostrate sopra a questo. Posso tempo quella proprietà come ho fatto per ridurre al minimo il div? – nitinvertigo

risposta

12

z-index non è un attributo.

Come indicato nella documentazione, si può fare

$("#one").css("z-index", ''); 

Estratto the documentation:

Impostare il valore di una proprietà di stile su una stringa vuota - per esempio $ ('# mydiv'). Css ('color', '') - rimuove la proprietà da un elemento se è già stata applicata direttamente, sia nello stile HTML , tramite il metodo .css() di jQuery, o tramite diretta manipolazione DOM della proprietà style. Tuttavia, non rimuove uno stile che è stato applicato con una regola CSS in un foglio di stile o elemento .

2

È possibile rimuovere utilizzando .css() in jQuery

$('#id').css('z-index',''); 

provare come questo

+4

Impostandolo su 0 non rimuoverà completamente lo z-index. –

+0

@JamesDonnelly Grazie ho aggiornato la mia risposta – PSR

+0

sta funzionando bene ora.ma capita all'istante. Voglio dire quando clicco su div le altre 3 div immateriali mostrate sopra il div attuale. Voglio che accada dopo che il div ha ridotto al minimo. Come posso fare? – nitinvertigo

1

Invece di:

$("#one").removeAttr("z-index"); 

rimuoverlo dal CSS:

$("#one").css("z-index", ""); 

Oppure, perhap s

$("#one").css("z-index", "auto"); 
1

uso iniziale per ripristinare z-index al suo valore di default

$('#id').css('z-index','initial'); 

CSS Sintassi

z-index: auto | numero | iniziale | ereditare;

  • auto: consente di impostare l'ordine di stack uguale ai suoi genitori. Impostazione predefinita
  • numero: imposta l'ordine di stack dell'elemento.Numeri negativi ammessi
  • iniziale: imposta questa proprietà sul valore predefinito. Informazioni sull'iniziale
  • inherit: eredita questa proprietà dall'elemento padre.
+0

Penso che questa sia l'unica risposta corretta a questa domanda. Tutti gli altri non rimuoveranno l'attributo, se è impostato in un file css. Potresti usare 'unset' invece di 'initial'. Ma non testato in IE. – Oliver

Problemi correlati