Funzione per le dimensioni della pagina reale e della finestra visualizzata - Javascript The Good2know Wall

Articoli Consigliati

Codemotion 2012 - Impressioni e tante emozioni.Codemotion 2012 - Impressioni e tante emozioni.

Come alcuni di voi hanno avuto modo di sapere dal post precedente, ho partecipato come speaker al Codemotion 2012. Il Codemotion è un evento organizzato dalla Facoltà...

Leggi l'articolo

Codemotion a Roma il 23-24 Marzo 2012 - Arduino, quando un aperitivo avvicina elettronica ed informatica.Codemotion a Roma il 23-24 Marzo 2012 - Arduino, quando un aperitivo avvicina elettronica ed informatica.

Cari lettori di Good2know, è con piacere che vi dò l'annuncio della mia presenza al Codemotion di quest'anno. La mattina del Sabato 24 Marzo, alle ore 09.50, terrò un...

Leggi l'articolo

La Successione di Fibonacci - VideoLa Successione di Fibonacci - Video

Ultimamente mi sono appassionato a giochi matematici ed enigmi. Mentre programmo una rubrica su enigmi e giochi matematici da pubblicare qui su Good2know, vi propongo questo...

Leggi l'articolo

Ecografia con l'iPhoneEcografia con l'iPhone

Se è vero il motto "C'è un'applicazione per tutto" anche il numero di gadget per smartphone sta raggiungendo questa definizione. E' il caso di un piccolo strumento...

Leggi l'articolo

Text shadow animation, testo in 3D con CSS3Text shadow animation, testo in 3D con CSS3

Girovagando per il web ho trovato un effetto con i nuovi css3 molto carino., fatto utilizzando i tag introdotti nella terza versione di CSS. Attraverso questi nuovi...

Leggi l'articolo

E dopo robots.txt è il momento di humans.txtE dopo robots.txt è il momento di humans.txt

Il file robots.txt penso che lo conosciamo tutti, è un file txt per aiutare i crawler dei motori di ricerca nell'indicizzazione. Bene, dopo i robot nei siti internet...

Leggi l'articolo

Zend_Acl e Zend_Auth - Sistema di autenticazione e autorizzazione con Zend FrameworkZend_Acl e Zend_Auth - Sistema di autenticazione e autorizzazione con Zend Framework

Zend_Acl è una delle tante classi di Zend molto utili. Consiste in una serie di funzionalità che permettono un controllo molto facile di CHI può fare COSA aumentando...

Leggi l'articolo

Zend_Auth - Gestire le autenticazioni semplicementeZend_Auth - Gestire le autenticazioni semplicemente

Zend_Auth è una classe di Zend Framework che permette la gestione dell'autenticazione su un sito in maniera molto semplice. Consiste in una serie di adapter per gli...

Leggi l'articolo

Aumentare le prestazioni di PHP con Facebook HipHopAumentare le prestazioni di PHP con Facebook HipHop

I carissimi programmatori di Facebook hanno rilasciato un piccolo progetto che ottimizza notevolmente le prestazioni, in fase di esecuzione, di codice php: Facebook HipHop. Come...

Leggi l'articolo

GoPano micro - lente per iPhone 4 per registrare video a 360 gradiGoPano micro - lente per iPhone 4 per registrare video a 360 gradi

Salve a tutti cari lettori, oggi vi vorrei presentare questo gadget per iPhone 4 che permette di registrare video a 360 gradi. Di seguito potete vedere un video d'esempio. Potete...

Leggi l'articolo

voglio una stampante 3D, ma il costo mi sembra ancora eccessivo per un privato. -.-'

Funzione per le dimensioni della pagina reale e della finestra visualizzata – Javascript

6

Scritto il 05/03/2010 da Filippo Matteo Riggio

Salve cari lettori di good2know.it, oggi vorrei fornirvi un’utile funzione javascript che vi restituisce le dimensioni reali della pagina e della finestra visualizzata.

Leggete l’intero articolo per vedere la funzione.


// la funzione restituisce in un array
// la larghezza e l'altezza della pagina reale(scroll compreso) e la larghezza e l'altezza della finestra visibile

function getPageSize() {

 var xScroll, yScroll;

 // ---> RICAVO LE DIMENSIONI DELLA PAGINA <--- //

 // window.innerHeight : altezza della finestra visibile
 // window.innerWidth  : larghezza della finestra visibile

 // window.scrollMaxY  : dimensioni massime dello scroll verticale
 // window.scrollMaxX  : dimensioni massime dello scroll orizzontale

 // document.body.offsetHeight : altezza di default del browser
 // document.body.offsetWidth  : larghezza di default del browser

 // se esiste l'altezza della finestra e lo scroll verticale(quindi esiste anche la barra x lo scorrimento)
 // xScroll è la somma dello scroll orizzontale e della larghezza della finestra
 // yScroll è la somma dello scroll verticale e dell'altezza della finestra

if (window.innerHeight && window.scrollMaxY) {
    xScroll = window.innerWidth + window.scrollMaxX;
    yScroll = window.innerHeight + window.scrollMaxY;
}else if (document.body.scrollHeight > document.body.offsetHeight){
    xScroll = document.body.scrollWidth;
    yScroll = document.body.scrollHeight;
}else{
    xScroll = document.body.offsetWidth;
    yScroll = document.body.offsetHeight;
}

 var windowWidth, windowHeight;

 // ---> RICAVO LE DIMENSIONI DELLA FINESTRA <--- //

 // self.innerHeight : altezza di default della finestra
 // self.innerWidth  : larghezza di default della finestra
 // (dimensioni non valide per Explorer 6)

 // document.documentElement.clientWidth  : larghezza di default della finestra
 // document.documentElement.clientHeight : altezza di default della finestra
 // (dimensioni valide per Explorer 6)

if (self.innerHeight) {
    if(document.documentElement.clientWidth){
        windowWidth = document.documentElement.clientWidth;
    }else{
        windowWidth = self.innerWidth;
    }
    windowHeight = self.innerHeight;
}else if (document.documentElement && document.documentElement.clientHeight) {
    windowWidth = document.documentElement.clientWidth;
    windowHeight = document.documentElement.clientHeight;
}else if (document.body) {
    windowWidth = document.body.clientWidth;
    windowHeight = document.body.clientHeight;
}

//per le pagine con l'altezza totale minore dell'altezza della finestra del browser
if(yScroll < windowHeight){
     pageHeight = windowHeight;
}else {
     pageHeight = yScroll;
}

//per le pagine con larghezza totale minore della larghezza della finestra del browser
if(xScroll < windowWidth){
    pageWidth = xScroll;
}else{
    pageWidth = windowWidth;
}

//creo l'array e lo ritorno
arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
return arrayPageSize;
}

La funzione restituisce un array con le dimensioni.

Tags: , , , , ,

Commenti (6)

ciao! avrei bisogno di modificare questa funzione in modo che non appaia la barra di scorrimento orizzontale anche se appare quella verticale. Puoi aiutarmi?

Ciao, certo che posso aiutarti, tuttavia il fatto che compaia la barra orizzontale sotto è dovuto alle dimensioni dei div contenitori nella pagina web.
Controlla la larghezza di tutti i contenitori e vedi se non vai oltre la risoluzione del monitor.
Le funzioni qui sopra restituiscono le dimensioni della pagina e della finestra e non troverai nessun browser che ti permetta di far scomparire la scrollbar a piacimento, questo perchè è un problema risolvibile per mezzo delle proprietà dei CSS. :)
Spero di esserti stato d’aiuto.
Ciao!

Ciao, avrei una domanda se modifico la larghezza del browser senza aggiornare la pagina lo script rileva le modifiche?

Dipende da dove utilizzi le due funzioni.
Se le utilizzi sull’onload() della pagina ovviamente no.
Se lo utilizzi su chiamate di funzioni esterne, tipo onclick() o altre azioni vengono rilevate le dimensioni effettive.

ciao.
Questo articolo è molto bello. Ma ti volevo fare 2 domande
1) Sei sicuro che sia cross browser? molte delle definizoni degli elementi cambiano da browser a browser.
2) io vorrei dimensionare un iframe in base alla altezza della pagina in esso contenuta.
Vista la tua esperienza in questo campo volevo consiglio da te.

Grazie

Ciao Vincenzo, ti rispondo subito e provo ad esserti utile.
Allora per la prima domanda sì, è cross browser.
Per la seconda prova a fare così:

< script language="javascript" >

< / script >
< iframe width="300" id="mioIframe" onLoad="altezzaPagina();" src="test.html" scrolling="NO" frameborder="1" height="1">< / iframe>

Gli spazi sono per via d’interpretazione del codice!
Prova così e fammi sapere! ;)

Lascia un commento