You are not logged in.

wcf.regNote.message

Prometheus

Administrator

  • "Prometheus" started this thread

Posts: 3,278

  • Send private message

1

Friday, November 4th 2005, 9:54pm

Fenstergröße mit js ermitteln und in html verwenden

ich glaub ich hab mal wieder nen denkfehler. also folgendes...

ich ermittele meine fenstergröße mit

Source code

1
2
3
4
	<script type="text/javascript">
	breite=document.body.offsetWidth
	höhe=document.body.offsetHeight
	</script>

und jetzt habe ich ein div welches haar genau so breit sein soll wie die ermittelte breite, aber die höhe die ermittelt wurde abzüglich 256 pixel. das div soll dann auch erst bei 257 pixel von oben gesehen beginnen. das mein div da beginnt hab ich schon aber mir ist nicht klar wie ich jetzt die js var "höhe" in meinem div verwenden kann.
so sieht mein div aus...

Source code

1
<div style="background-image:url(pics/starthg.jpg); background-repeat:repeat; position:absolute; top:257px; left:1px; width:100%; height:JS VAR höhe; z-index:3">
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

2

Saturday, November 5th 2005, 12:33pm

gib dem Div ne Id und bau am Ende der Seite folgenden JS Code ein:

Source code

1
2
3
4
var div = document.getElementById("DIV_ID");
if(div) {
    div.style.height = document.body.offsetHeight - 256;
}


Ciao Ephraim

Prometheus

Administrator

  • "Prometheus" started this thread

Posts: 3,278

  • Send private message

3

Saturday, November 5th 2005, 1:14pm

also möglicherweise hängen meine probleme mal wieder damit zusammen das ich alles durcheinander mache ... den code darf man keinem zeigen ;)

ich hab ne datei "index.php" welche div. kleinere sachen macht wie abfragen welche seite aufgerufen wurde und so zeug. unter anderem wird dort auch die ausgabe der seite generiert. ich lade mir dazu aus tpl dateien den seiteninhalt raus und evaluiere den in ne variable. dann gebe ich den html code über echos raus. teile welche immer auf jeder seite gleich sind habe ich fest in echos eingebaut. das heißt im prinziep ich gebe über ein echo html code aus welcher js code enthällt :D

Source code

1
2
3
4
5
6
7
8
9
10
11
	echo '</body>';
	echo '<script type="text/javascript">';
	echo '<!--';
	echo '	var div = document.getElementById("haupthintergrund");';
	echo '	if(div) {';
	echo '		div.style.height = document.body.offsetHeight - 25;';
	echo '		div.style.width = document.body.offsetWidth - 1;';
	echo '	}';
	echo '-->';
	echo '</script>';
	echo '</html>';

das is der code teil wo ich das div ansprechen möchte. die größe vom div ändert sich aber in keinster weise.

kurz noch zur erklärung. ich möchte keinerlei frames oder tabellen nutzen und die gesamte seite nur mit divs aufbauen. ich hab mir also ein div gemacht wo der obere bereich drin ist mit einem farbverlauf vom hintergrund und dann ein zweites div mit dem haupthintergrund. das erste div ist genau 256 pixel hoch und beginnt bei ganz oben und das zweite div muss somit bei 257 pixel beginnen und darf dann nurnoch so hoch sein das die seite grade ausgefüllt wird aber keine scrollbalken erscheinen.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

4

Sunday, November 6th 2005, 11:54am

In Javascript macht es einen Unterschied ob etwas in einer Zeile hintereinander oder in einer neuen Zeile steht. Deswegen einfach mal so ausgeben:

Source code

1
2
3
4
5
6
7
echo "<!--\n";
echo "var div = document.getElementById("haupthintergrund");\n";
echo "if(div) {\n";
echo "div.style.height = document.body.offsetHeight - 25;\n";
echo "div.style.width = document.body.offsetWidth - 1;\n";
echo "}\n";
echo "-->\n";


Ciao Ephraim

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

5

Wednesday, November 23rd 2005, 4:18pm

Da der FireFox document.body.offsetWidth bzw. Height net kennt,
solltest du vielleicht differenziert die Höhe dir holen ... also
eine Methode für en IE und dann eine für Opera und FireFox.

Source code

1
2
3
4
5
6
7
	var Height = parseInt(document.body.offsetHeight);
	var Width = parseInt(document.body.offsetWidth);
	
	if(navigator.appName.match(/Firefox/gi) != -1 || navigator.appName.match(/Opera/gi) != -1) {
		Height = parseInt(window.innerHeight);
		Width = parseInt(window.innerWidth);
	}


Ciao Ephraim

Prometheus

Administrator

  • "Prometheus" started this thread

Posts: 3,278

  • Send private message

6

Wednesday, November 23rd 2005, 4:40pm

jau das funktioniert :D

jetzt muss ich mir nur noch irgendwas basteln alla

NewHeight = Window.OnMouseFensterAnpackUndGrößeVeränder.Height

usw. ;)

weil wenn einer das fenster jetzt größer zieht verändert sich das hintergrund nicht. muss ich mal nach suchen da find ich schon noch was.

Folgendes hab ich mal rausgesucht. das müsste das sein was ich suche.
http://de.selfhtml.org/javascript/beispi…n.htm#quelltext
nur wegen was funktioniert das im firefox schon wieder nicht? da is doch extra der hinweis bei das das auch im ff geht aber bei mir geht es nicht (das beispiel meine ich).
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

7

Thursday, November 24th 2005, 8:17am

Aufjeden Fall ist das hier der wichtige Teil aus dem ganzen Dingens:
window.onresize = neuAufbau;
neuAufbau is ne Funktion und die wird sozusagen dem Window hier bekannt gegeben und für den "onresize" Handler festgelegt.

du kannst da jede beliebige funktion reinbauen und dann deinen eigenen Handler bauen ... wobei ich allerdings jetzt noch net kapiert
hab wieso des beim FF net gehen soll :(


ich werd da mal bissel mitgucken ;)

Ciao Ephraim
[EDIT]?! Bei mir funtzt des im FF!!!![/EDIT]

Prometheus

Administrator

  • "Prometheus" started this thread

Posts: 3,278

  • Send private message

8

Thursday, November 24th 2005, 9:13am

also in dem beispiel sollten sich die zahlen ja verändern wenn man das fenster größer oder kleiner macht. das ist bei mir aber nicht gegeben. die zahlen bleiben gleich bis ich im browser reloade. außerdem sieht mir die funktion so aus als wenn sie so oder so nur geht wenn die fensterbreite geändert wird oder? weil nur die Height abgefragt wird mein ich.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

9

Thursday, November 24th 2005, 11:28am

Nene ... wo meinst du frägt der nur die Höhe ab?

siehe funktion neuAufbau:

Source code

1
2
  if (Weite != Fensterweite() || Hoehe != Fensterhoehe())
    window.history.go(0);


da frägt der doch einwandfrei die Weite und Höhe ab....
und des window.history.go(0) macht eigentlich en reload!
Hast du irgendwie im FF was bei Javascript verboten? ....
Kein Plan was bei dir da net funtzt !!! Bei mir geht des mit em FF einwandfrei!!!!!!!!! ....

Ciao Ephraim

Prometheus

Administrator

  • "Prometheus" started this thread

Posts: 3,278

  • Send private message

10

Thursday, November 24th 2005, 12:06pm

ich meine das hier im body

Source code

1
if (!window.Weite && document.body && document.body.offsetWidth) {

das heißt doch die funktion resize wird nur abgefragt wenn die weite sich ändert oder net?

warum das bei mir nicht geht kann ich nicht sagen ich hab meinen firefox standard installiert wie er ist und auch keinerlei einstellungen geändert außer beim popup blocker und ein adblocker plugin was aber damit nichts zu tun haben kann.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

11

Thursday, November 24th 2005, 12:53pm

Source code

1
if (!window.Weite && document.body && document.body.offsetWidth) {

Nenene ... wo siehst du da en ==, >= oder <= ... der Vergleicht doch da nix! Was der hier macht, der schaut nach obs die Vars gibt und obs die Var window.Weite noch nicht gibt, wenn ja, dann geht er hier von einem IE aus.

Also wenn dann denke ich liegt des bei deinem FF, vielleicht hat dein AdBlocker des verboten, des die Fenstergrösse ausgelesen werden darf oder so ... keine Ahnung.

Ciao Ephraim

wcf.user.socialbookmarks.titel