webForumDet fria alternativet

Ändra storleken på ett fönster skalaenligt

JavaScript

3 svar · 297 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Frågan#1

Hej hopp...

Är det möjligt att göra ett skript som ändrar storleken på ett fönster skalaenligt. Höjden och bredden måste ändras med samma faktor...

Triggaren ska vara onResize på ett fönster.

:OO

Medlem sedan nov. 20017 144 inlägg
#2

Det borde vara ungefär så här:

var intNyBrädd = 400;
var intNyHöjd = parseInt(intNyBrädd/intOriginalBrädd) * intOrginalHöjd;

labba lite med: window.resizeTo(w,h)
och:

if (document.layers){
   browseWidth=window.outerWidth;
   browseHeight=window.outerHeight;
}
if (document.all){
   browseWidth=document.body.clientWidth;
   browseHeight=document.body.clientHeight;
}
Medlem sedan maj 20012 080 inlägg
#3

Tänkte att jag åter skulle ge mig ann denna uppgift.

Ett problem jag verkar få med window.resizeTo är att document.body.clientHeight verkar returner någon storlek på arbetsytan på fönstret och inte den yttre ramen.

Kan man få ut den exakta yttre fönsterstorleken med IE?

Provade att labba med...
window.resizeBy(0,varHeightDiff) // Ändrar storleken på fönstret med x antal pixlar
... men jag får access denied fel när jag försöker köra tex följande:

<body onResize="resizeWindowAtFactor()">

<script>
	if (document.layers){
	   varStartBrowseWidth = window.outerWidth;
	   varStartBrowseHeight = window.outerHeight;
	}
	if (document.all){
	   varStartBrowseWidth = document.body.clientWidth;
	   varStartBrowseHeight = document.body.clientHeight;
	}

function resizeWindowAtFactor(){
	var intWindowScaleFactor = 1
	
	if (document.layers){
	   varNewBrowseWidth = window.outerWidth;
	   varNewBrowseHeight = window.outerHeight;
	}
	if (document.all){
	   varNewBrowseWidth = document.body.clientWidth;
	   varNewBrowseHeight = document.body.clientHeight;
	}
	varHeightDiff = varNewBrowseHeight - varStartBrowseHeight
	
	window.resizeBy(0,varHeightDiff)	// Ändrar storleken på fönstret med x antal pixlar
}
</script>

Kan det vara så att det inte är tillåtet att köra window.resize samtidigt som man triggar den genom att dra i fönstret ???

Medlem sedan maj 20012 080 inlägg
#4

Har fortfarande inte lyckats att trigga ändringen av storleken via onResize men följande fungerar. Antar att det inte fungerar så bra i andra webbläsare.

<script language="JavaScript">
var ieDiffWidth;
var ieDiffHeight;

function init() {

  var w, h, offW, offH, diffW, diffH;
  var fixedW = 800;
  var fixedH = 600;

  if (document.all) {
    offW = document.body.offsetWidth;
    offH = document.body.offsetHeight;
    window.resizeTo(fixedW, fixedH);
    diffW = document.body.offsetWidth  - offW;
    diffH = document.body.offsetHeight - offH;
    w = fixedW - diffW;
    h = fixedH - diffH;
    ieDiffWidth  = w - offW;
    ieDiffHeight = h - offH;
    window.resizeTo(w, h);
  }
}

function outerWd() {
  if (document.all)
    return document.body.offsetWidth  + ieDiffWidth;
  else
    return window.outerWidth;
}

function outerHt() {
  if (document.all)
    return document.body.offsetHeight  + ieDiffHeight;
  else
    return window.outerHeight;
}
</script>
</head>
<body onload="init()" !onResize="resizeWindowAtFactor()">

<script language="JavaScript">
function resizeWindowAtFactor(num){
	var intWindowScaleFactor = 1.3	// Bredden ska alltid vara 1.3 ggr så bred som höjden.
//	varOuterWidht = outerWd()
	varOuterHeight = outerHt()
	varOuterHeight = varOuterHeight + num
	varOuterWidht = varOuterHeight * intWindowScaleFactor
	window.resizeTo(varOuterWidht,varOuterHeight )	
}
</script>

<a href="#" onclick="alert(outerWd() + 'x' + outerHt()); return false;">Show Outer Dimensions</a>
<a href="#" onclick="resizeWindowAtFactor(50);">Resize Up</a>
<a href="#" onclick="resizeWindowAtFactor(-50);">Resize Down</a>

Är det helt kört att få det att triggas av onResize="" ?

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)