Al click su un elemento (un li di una lista ul) devo creare un effetto fade per tutto il resto della pagina, tranne per l'elemento stesso che deve rimanere in primo piano.
Il problema persiste quando si attiva il fade che invece di coprire tutta la pagina tranne l'elemento chiamante, copre semplicemente tutto, senza distinzioni; come se il "rilancio" dello z-index dell'elemento li tramite jquery non avesse effetto. Come si può far "avanzare" solo l'elemento li chiamante?
Codice CSS:
codice:
ul.people {
list-style: none;
margin: 0; padding: 0;
width: 700px;
}
ul.people li {
float: left;
margin: 10px;
padding: 0;
text-align: center;
border: 1px solid #ccc;
border-radius: 3px;
overflow:hidden;
}
ul.people li img { width: 150px; border:none; }
ul.people li p { display:none; }
#fade {
display: none;
top: 0%;
left: 0%;
width: 100%;
height: 100%;
position: absolute;
background-color: black;
-moz-opacity: 0.8;
opacity:.80;
filter: alpha(opacity=80);
z-index: 500;
}
Codice Javascript:
codice:
function showPeople(id) {
$('body').css("overflow", "hidden");
$("#fade").show();
$("#fade").children("a").attr("href", "javascript:closeFade("+id+")")
$("#li" + id).children("p").show();
$("#li" + id).css("z-index", 1000);
}
function closeFade(id) {
$("#li" + id).children("p").hide();
$('body').css("overflow", "auto");
$("#fade").hide();
}
Codice HTML
codice:
<ul class="people">
<li onclick="showPeople(1)" id="li1">
[img]images/img1bw.jpg[/img]
ciao</p>
<li onclick="showPeople(2)" id="li2">
[img]images/img2bw.jpg[/img]
ciao</p>
[/list]
<div id="fade">X</div>