Return to Snippet

Revision: 7851
at April 30, 2010 08:55 by wizard04


Updated Code
//get current dimensions and positions of basic objects (screen, browser, viewport, window/frame)
//optionally, specify a particular window/frame
//usage:   var dims = new WindowDimensions();
function WindowDimensions(windowFrame)
{
	windowFrame = windowFrame || window;
	
	//****************************************************//
	//***** screen, browser, and viewport dimensions *****//
	//****************************************************//
	
	this.screen = {
		width: screen.width,
		height: screen.height,
		//available screen dimensions; excludes taskbar, etc.
		availWidth: screen.availWidth,
		availHeight: screen.availHeight,
		colorDepth: screen.colorDepth
	};
	this.browser = {
		width: window.outerWidth,	//undefined in IE, incorrect in Opera
		height: window.outerHeight,	//undefined in IE, incorrect in Opera
		left: window.screenX,		//undefined in IE, incorrect in Opera
		top: window.screenY			//undefined in IE, incorrect in Opera
	};
	this.viewport = {
		outer: {	//includes scroll bars
			width: window.top.innerWidth,	//undefined in IE
			height: window.top.innerHeight	//undefined in IE
		},
		inner: {	//excludes scroll bars
			width: window.top.document.documentElement.clientWidth,
			height: window.top.document.documentElement.clientHeight
		}
	};
	
	//***********************************//
	//***** window/frame dimensions *****//
	//***********************************//
	
	var left, top;
	
	//scroll position of document
	if(!isNaN(windowFrame.pageYOffset))	//all except IE
	{
		left = windowFrame.pageXOffset;
		top = windowFrame.pageYOffset;
	}
	else	//IE
	{
		//IE quirks mode
		left = windowFrame.document.body.scrollLeft;
		top = windowFrame.document.body.scrollTop;
		
		//IE standards compliance mode
		if(windowFrame.document.documentElement && windowFrame.document.documentElement.scrollTop)
		{
			left = windowFrame.document.documentElement.scrollLeft;
			top = windowFrame.document.documentElement.scrollTop;
		}
	}
	left = left || 0;
	top = top || 0;
	
	this.window = this.frame = {
		outer: {	//includes scroll bars
			width: windowFrame.innerWidth,	//undefined in IE
			height: windowFrame.innerHeight	//undefined in IE
		},
		inner: {	//excludes scroll bars
			width: windowFrame.document.documentElement.clientWidth,
			height: windowFrame.document.documentElement.clientHeight	//incorrect in quirks mode (equals offsetHeight)
		},
		scroll: {
			width: windowFrame.document.documentElement.scrollWidth,
			height: windowFrame.document.documentElement.scrollHeight,
			left: left,
			top: top
		}
	};
}

Revision: 7850
at October 30, 2008 14:36 by wizard04


Updated Code
//get current dimensions and positions of basic objects (screen, browser, viewport, window/frame)
//optionally, specify a particular window/frame
//usage:   var dims = new WindowDimensions();
function WindowDimensions(windowFrame)
{
	windowFrame = windowFrame || window;
	
	//****************************************************//
	//***** screen, browser, and viewport dimensions *****//
	//****************************************************//
	
	this.screen = {
		width: screen.width,
		height: screen.height,
		//available screen dimensions; excludes taskbar, etc.
		availWidth: screen.availWidth,
		availHeight: screen.availHeight,
		colorDepth: screen.colorDepth
	};
	this.browser = {
		width: window.outerWidth,	//undefined in IE, incorrect in Opera
		height: window.outerHeight,	//undefined in IE, incorrect in Opera
		left: window.screenX,		//undefined in IE, incorrect in Opera
		top: window.screenY			//undefined in IE, incorrect in Opera
	};
	this.viewport = {
		outer: {	//includes scroll bars
			width: window.top.innerWidth,	//undefined in IE
			height: window.top.innerHeight	//undefined in IE
		},
		inner: {	//excludes scroll bars
			width: window.top.document.documentElement.clientWidth,
			height: window.top.document.documentElement.clientHeight
		}
	};
	
	//***********************************//
	//***** window/frame dimensions *****//
	//***********************************//
	
	var left, top;
	
	//scroll position of document
	if(windowFrame.pageYOffset)	//all except IE
	{
		left = windowFrame.pageXOffset;
		top = windowFrame.pageYOffset;
	}
	else if(windowFrame.document.documentElement && !isNaN(windowFrame.document.documentElement.scrollTop))	//IE standards compliance mode
	{
		left = windowFrame.document.documentElement.scrollLeft;
		top = windowFrame.document.documentElement.scrollTop;
	}
	if(!top && !left)	//IE quirks mode
	{
		left = windowFrame.document.body.scrollLeft || 0;
		top = windowFrame.document.body.scrollTop || 0;
	}
	
	this.window = this.frame = {
		outer: {	//includes scroll bars
			width: windowFrame.innerWidth,	//undefined in IE
			height: windowFrame.innerHeight	//undefined in IE
		},
		inner: {	//excludes scroll bars
			width: windowFrame.document.documentElement.clientWidth,
			height: windowFrame.document.documentElement.clientHeight	//incorrect in quirks mode (equals offsetHeight)
		},
		scroll: {
			width: windowFrame.document.documentElement.scrollWidth,
			height: windowFrame.document.documentElement.scrollHeight,
			left: left,
			top: top
		}
	};
}

Revision: 7849
at August 17, 2008 20:29 by wizard04


Initial Code
//get current dimensions and positions of basic objects (screen, browser, viewport, window/frame, document)
//optionally, specify a particular window/frame
//usage:   var dims = new WindowDimensions();
function WindowDimensions(windowFrame)
{
	windowFrame = windowFrame || window;
	
	//****************************************************//
	//***** screen, browser, and viewport dimensions *****//
	//****************************************************//
	
	this.screen = {
		width: screen.width,
		height: screen.height,
		//available screen dimensions; excludes taskbar, etc.
		availWidth: screen.availWidth,
		availHeight: screen.availHeight,
		colorDepth: screen.colorDepth
	};
	this.browser = {
		width: window.outerWidth,	//undefined in IE
		height: window.outerHeight,	//undefined in IE
		left: window.screenX,		//undefined in IE, incorrect in Opera
		top: window.screenY			//undefined in IE, incorrect in Opera
	};
	this.viewport = {
		//includes scroll bars
		width: window.top.innerWidth,	//undefined in IE
		height: window.top.innerHeight	//undefined in IE
	};
	
	//***********************************//
	//***** window/frame dimensions *****//
	//***********************************//
	
	//dimensions of window/frame (includes scrollbars)
	this.window = this.frame = {
		width: windowFrame.innerWidth,	//undefined in IE
		height: windowFrame.innerHeight	//undefined in IE
	};
	
	//*******************************//
	//***** document dimensions *****//
	//*******************************//
	
	var width, height, left, top;
	
	//dimensions of document (excludes scrollbars)
	if(windowFrame.document.documentElement && !isNaN(windowFrame.document.documentElement.clientWidth))
	{
		width = windowFrame.document.documentElement.clientWidth;
		height = windowFrame.document.documentElement.clientHeight;
	}
	else	//IE quirks mode
	{
		width = windowFrame.document.body.clientWidth;
		height = windowFrame.document.body.clientHeight;
	}
	
	//scroll position of document
	if(window.pageYOffset)	//all except IE
	{
		left = windowFrame.pageXOffset;
		top = windowFrame.pageYOffset;
	}
	else if(windowFrame.document.documentElement && !isNaN(windowFrame.document.documentElement.scrollTop))	//IE standards compliance mode
	{
		left = windowFrame.document.documentElement.scrollLeft;
		top = windowFrame.document.documentElement.scrollTop;
	}
	else	//IE quirks mode
	{
		left = windowFrame.document.body.scrollLeft;
		top = windowFrame.document.body.scrollTop;
	}
	
	this.document = {
		width: width,
		height: height,
		scroll: {
			left: left,
			top: top
		}
	};
}

Initial URL

                                

Initial Description

                                

Initial Title
Screen, Browser, and Window Dimensions

Initial Tags
javascript, window, browser

Initial Language
JavaScript