Ti ho fatto un file con con un pizzico di javascript che ti aiuterà
(In realtà l'ho fatto per me, ma se dico che l'ho fatto per te sembro più altruista...)
Ho messo un po' di commenti, spero siano chiari...
E qui la demo
http://tampertools.altervista.org/de...iso/index.html
Codice html:
Codice HTML:
<div id="avviso">
Attenzione! Devi bla bla bla bla...
</div>
Tutta la pagina...
<button onclick="mostra_avviso();">Mostra l'avviso</button>
<button onclick="nascondi_avviso();">Nascondi l'avviso</button>
Un po' di stile...
Codice:
#avviso {
background-color: #ffcc00;
border: thin solid #ff8c00;
padding:10px;
}
Nell'head metti le variabili javascript:
Codice PHP:
//Il tempo impiegato dall'avviso a scendere (in millisecondi)
//ATTENZIONE con tempi troppo piccoli la precisione sarà inferiore
//Se si imposta a 0 non si vedrà l'animazione
//VARIABILE DA MODIFICARE
var TEMPO = 700;
//Vuoi che il l'avviso sia nascosto dall'inizio?
//VARIABILE DA MODIFICARE
var nascosto_inizio = true;
E poi includi questo file Javascript:
Codice PHP:
//Tempo che impiega il div a scendere di un px
var velocita;
//Azione in corso
var occupato = 0;
//Funzione che nasconde all'inizio il div e calcola la variabile velocita
//Si passa come parametro true se si vuole nascondere l'avviso dall'inizio, altrimenti false
function inizio() {
//Selezione dell'elemento
var elm = document.getElementById("avviso");
//Svincolo l'elemento dal resto della pagina
elm.style.position = "fixed";
//Lo adatto in larghezza con le proprietà css "left" e "right"
elm.style.left = elm.style.right = "0";
//Lo porto in cima alla pagina
elm.style.top = "0";
//Altezza dell'elemento
var h = elm.offsetHeight;
//Se il parametro nascosto è impostato a true...
if (nascosto_inizio) {
//Nascondo l'elemento
elm.style.top = "-" + h + "px";
}
//Calcolo la variabile velocita
velocita = TEMPO / h;
}
//Funzione che mostra l'avviso, segnata come "1" nella variabile "occupato"
function mostra_avviso() {
//Se non è in corso la funzione "nascondi_avviso"...
if (occupato != 2) {
//Imposto "occupato" a 1
occupato = 1;
//Selezione dell'elemento
var elm = document.getElementById("avviso");
//Se il tempo è maggiore di 0ms...
if (TEMPO > 0) {
//Attuale valore "top" dell'elemento
var top = parseInt(elm.style.top);
//Se il valore "top" è negativo...
if (top < 0) {
//Aumento il valore "top" 1 px
elm.style.top = (top + 1) + "px";
//Ripeto la funzione dopo il tempo indicato nella variabile "velocita"
setTimeout("mostra_avviso()", velocita);
}
//... altrimenti imposto "occupato" a 0 e finisco la funzione
else occupato = 0;
}
//...altrimenti, se il tempo è uguale o minore a 0ms
else {
//Imposto subito a 0px il valore "top" dell'elemento
elm.style.top = "0px";
occupato = 0;
}
}
}
//Funzione che nasconde l'avviso, segnata come "2" nella variabile "occupato"
function nascondi_avviso() {
//Se non è incorso la funzione "mostra_avviso"...
if (occupato != 1) {
//Imposto "occupato" a 2
occupato = 2;
//Selezione dell'elemento
var elm = document.getElementById("avviso");
//Se il tempo è maggiore di 0ms...
if (TEMPO > 0) {
//Attuale valore "top" dell'elemento
var top = parseInt(elm.style.top);
//Se il valore "top" è maggiore dell'inverso dell'altezza dell'elemento...
if (top >= elm.offsetHeight*(-1)) {
//Diminuisco il valore "top" di 1 px
elm.style.top = (top - 1) + "px";
//Ripeto la funzione dopo il tempo indicato nella variabile "velocita"
setTimeout("nascondi_avviso()", velocita);
}
//... altrimenti imposto "occupato" a 0 e finisco la funzione
else occupato = 0;
}
//...altrimenti, se il tempo è uguale o minore a 0ms
else {
//Imposto subito il valore "top" dell'elemento pari all'inverso dell'altezza dell'elemento stesso
elm.style.top = "-" + elm.offsetHeight + "px";
occupato = 0;
}
}
}
//Inizio al caricamento della pagina
window.onload = function () {inizio()};