Hallo PHPhulp'ers,

Ik ben wat aan het proberen met het automatisch resizen van een website aan de hand van de breedte van het venster.

CSS:

<style type="text/css">
#container {
	width: 200px; margin: 0 auto 0; height: 300px; background: #F00;
}
</style>


Javascript:

<script type="text/javascript">
function getWidth()
{
	if(typeof window.innerWidth != 'undefined')
		return window.innerWidth
	 
	else if(typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth !='undefined' && document.documentElement.clientWidth != 0)
		return document.documentElement.clientWidth
	 
	else
		return document.getElementsByTagName('body')[0].clientWidth
}

function resizeHandler(width)
{
	if(width<1050)
		document.getElementById('container').style.width = '600px';
	
	else if(width<1025)
		document.getElementById('container').style.width = '1024px';
		
	else if(width<1209)
		document.getElementById('container').style.width = '300px';
	
	else if(width>1209)
		document.getElementById('container').style.width = '100px';
}
</script>


Body:
<body>

<div id="container">
<a href="#" onmouseover="resizeHandler(getWidth());">reset website resolutie</a>

<script type="text/javascript">
	resizeHandler(getWidth());
</script>

<p>test de viewport resolutie van de pagina</p>
</div>

</body>


Het lukt dus al aardig alleen zodra je de website hebt geopent dan voert hij de code uit (de javascript). Ook doet hij dit zodra je met je muis over de tekst van 'reset website resolutie' (bijvoorbeeld als je je venster kleiner/groter hebt gemaakt), alleen doe je dit nog een keer dan doet de code het niet meer.

Heeft iemand een oplossing of wellicht een andere suggestie om de website breedte automatisch aan te passen (ik ben geen grote ster in javascript!)

Alvast bedankt mensen!
Dit kan de eenvoudig doen door je afmetingen in percentages te zetten ipv in pixels.
Leen schreef op 18.08.2009 11:25
Dit kan de eenvoudig doen door je afmetingen in percentages te zetten ipv in pixels.
Ik wil dus juist geen gebruik maken van percentages, want dan heb je ook weer te maken dat er geen maximum aan de breedte zit.
Steef schreef op 18.08.2009 11:26
[quote='Leen schreef op 18.08.2009 11:25']Dit kan de eenvoudig doen door je afmetingen in percentages te zetten ipv in pixels.
Ik wil dus juist geen gebruik maken van percentages, want dan heb je ook weer te maken dat er geen maximum aan de breedte zit.[/quote]Toch wel, max-width


Edit
bv
[code]div.wrapper { width: 90%; max-width: 1200px; }
Paradox™ schreef op 18.08.2009 11:30
[quote='Steef schreef op 18.08.2009 11:26'][quote='Leen schreef op 18.08.2009 11:25']Dit kan de eenvoudig doen door je afmetingen in percentages te zetten ipv in pixels.
Ik wil dus juist geen gebruik maken van percentages, want dan heb je ook weer te maken dat er geen maximum aan de breedte zit.[/quote]Toch wel, max-width[/quote]Is dat crossbrowser of alleen voor internet explorer? Want het zal ook moeten werken in Firefox enz.
Dat kan je oplossen door een max-width in te stellen

edit:
Bij mijn weten werkt dat ook in firefox ea
En voor IE zijn er onder tussen al fixes voor max-width, dus dat is ook geen probleem.
En wat nu als ik zeg maar wil dat je bij een viewport van 1024px en lager een breedte hebt van 1000px, maar bij een viewport van 1400px en lager een breedte van 1200px?
Steef schreef op 18.08.2009 11:38
En wat nu als ik zeg maar wil dat je bij een viewport van 1024px en lager een breedte hebt van 1000px, maar bij een viewport van 1400px en lager een breedte van 1200px?
Daar zul je js voor moeten gebruiken, dan geef je gewoon een min-width en max-width gebaseerd op die persoons resolutie?
Het is inmiddels al gelukt met de code uit de eerste post. Wat ik moest doen was:

<div id="container">

vervangen voor
<div id="container"  style="width: 200px;">


Toch bedankt voor jullie hulp!

Reageren