![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Chi non conosce html.it? Ecco, avete presente l'effetto che talvolta produce l'oscurazione(?) della pagina mentre rimane aperta la pubblicità? Come si ottiene? L'effetto naturalmente deve anche impedire, come nelle pagine di html.it, di navigare, quindi come se si avesse la disattivazione della pagina. |
#3
| |||
| |||
|
|
Se non ho capito male, altro non è che un DIV grande quanto il contenuto di tutta la pagina di colore nero/grigio al quale è stato applicato un effetto di opacità ed è stato posto sopra a tutti elementi della pagina allora se cerchi nel NG trovi una funzione per imporre la trasparenza agli elementi (cross-browser) sempre nel NG trovi una funzione per determinare la dimensione della pagina dopo di che il gioco è quasi fatto |
#4
| |||
| |||
|
|
dopo di che il gioco è quasi fatto Esattamente, un div che copre tutto, non ci avevo pensato. Ok, sono andato a cercare sul ng, più che altro la funzione per il calcolo delle dimensioni della pagina, ma ho trovato questo document.documentElement.clientHeight che ho provato ma non mi funziona, mi restituisce 0 (zero) se faccio un alert. Ci manca qualcosa? |
#5
| |||
| |||
|
|
var db = (document.compatMode && document.compatMode.toLowerCase() != "backcompat")? document.documentElement : (document.body || null); dopo di che' puoi evocare quei metodi più correttamente: h = db.clientHeight |
#6
| |||
| |||
|
|
devi controllare se stai lavorando in standard o quirks mode: var db = (document.compatMode && document.compatMode.toLowerCase() != "backcompat")? document.documentElement : (document.body || null); dopo di che' puoi evocare quei metodi più correttamente: h = db.clientHeight |
#7
| |||
| |||
|
|
toLowerCase() è ridondante. Sarebbe sufficiente: document.compatMode != "BackCompat" |
|
Inoltre devi essere coerente: se includi come valore possibile "null" per la variabile, non puoi considerarla per forza o documentElement o body. Quindi anche il codice sottostante deve tenerne conto. Qualcosa del tipo: var h = 0; if ( db != null && db.clientHeight ) h = db.clientHeight; |
#8
| |||
| |||
|
|
Senti, non so cosa sia lo standard e quirks mode, c'è qualche buon tutorial? |
#9
| |||||
| |||||
|
|
Sì è probabile e forse lo è per la totalità dei browser di ora e di sempre, tuttavia io sono dell'idea di perseverare diabolicamente su questo spreco di risorse :P così come per tagName... |
|
Inoltre devi essere coerente: se includi come valore possibile "null" per la variabile, non puoi considerarla per forza o documentElement o body. Quindi anche il codice sottostante deve tenerne conto. Qualcosa del tipo: var h = 0; if ( db != null && db.clientHeight ) h = db.clientHeight; sì sì, ma anche se dico "dopo di che' puoi evocare quei metodi più correttamente:" non escludo necessariamente che sarebbero doverosi dei controlli... |

|
Cmq, ti dico che stavo per farlo, poi pero' sono stato disincentivato dal fatto che allora, se andiamo a vedere, manco potrebbe esistere "db.clientHeight" |
|
e bisognerebbe fare i controlli con typeof |
|
e in tal caso tentare con qualcos'altro tipo window.innerHeight... |
#10
| |||||||||||||
| |||||||||||||
|
|
Sì è probabile e forse lo è per la totalità dei browser di ora e di sempre, tuttavia io sono dell'idea di perseverare diabolicamente su questo spreco di risorse :P così come per tagName... E allora dovresti farlo per qualunque cosa. Ad esempio, come fa a dire che un browser ti prende: document.getElementsByTagName("ul") piuttosto che: document.getElementsByTagName("UL") ? |
|
Per coerenza con quanto scrivi, dovresti fare ogni sacrosanta volta la chiamata alla prima istruzione, e se non ti ritorna niente tentare con la seconda. Se sei paranoico, optare anche per "uL" e "Ul". |
|
Stesso discorso vale per qualsiasi altro metodo e proprietà che prende come parametro o ha come valore una stringa; compreso "getElementById" e soci. |
|
Il punto è questo. Conoscere quello su cui si lavora. |
|
Come è già stato scritto in questo NG, è vero che non ci si può fidare del client, ma in ogni caso si lavora su un minimo di basi e standard. Del resto, non mi pare che tu scriva codice per Netscape 4 o IE4 o per tutti i dispositivi mobili. Quindi tu già dai per scontate determinate convenzioni e strutture. |
|
E sinceramente non capisco con quale criterio dare per scontate cose e metterne in dubbio altre, visto che stanno sul medesimo livello, senza che vi siano sospetti reali di supporto fallace. |
|
sì sì, ma anche se dico "dopo di che' puoi evocare quei metodi più correttamente:" non escludo necessariamente che sarebbero doverosi dei controlli... Ma non ne hai fatto menzione. La maggior parte degli utenti che scrive domande in questo NG, avrebbe preso e utilizzato quel codice, di certo non avrebbero aggiunto controlli di alcun tipo. |
|
Inoltre i "doverosi controlli" erano una sola riga, ti ci potevi anche sprecare. ![]() |
|
Cmq, ti dico che stavo per farlo, poi pero' sono stato disincentivato dal fatto che allora, se andiamo a vedere, manco potrebbe esistere "db.clientHeight" Infatti. Nella correzione che ti ho fatto questo viene preso di conto. Se "db.clientHeight" non esiste il valore di "h" rimane zero; e non va in errore come nel tuo caso. |
|
e bisognerebbe fare i controlli con typeof E il typeof su cosa lo vorresti fare? |
|
e in tal caso tentare con qualcos'altro tipo window.innerHeight... Beh potevi farlo, del resto per body e documentElement lo hai fatto... |
|
Oppure, potevi non contemplare un valore che poi non andavi a usare; |
|
Tutti e tre sono scenari condivisibili o meno, ma sicuramente coerenti da un punto di vista di programmazione e codice; cosa che invece non è l'assegnazione di valori che poi non si contemplano successivamente, a maggior ragione se possono sollevare un'eccezione. |
![]() |
| Thread Tools | |
| Display Modes | |
| |