Fixierter header mit jQuery Effekt

Hallo, ich arbeite gerade an einem neuen Design für unsere Schulhomepage und habe folgendes Problem.

Design: test.hak-gmunden.at/fileadmin/tests/design/

Das Hauptmenü der Seite soll ständig sichtbar sein (auch wenn man nach unten scrollt).
Der header hat aber eine Höhe von 90px, wenn ich ihn also einfach als Ganzes fixiere schaut es erstens nicht unbedingt gut aus und nimmt zweitens ziemlich viel Platz weg.
Darum möchte ich, dass sich der header einfach verkleinert wenn man nach unten scrollt, also der weiße Balken mit dem Login-Feld soll einfach verschwinden und das Logo soll verkleinert werden. Das Ganze soll dann so aussehn wie auf der IBM-Website (ibm.com/).

Ich kenne mich leider nicht wirklich mit den ganzen Javascript-Frameworks aus, daher wäre ich um eine fertige Lösung sehr dankbar. Am liebsten wäre es mir, wenn das Ganze auch mit jQuery ginge, weil IBM verwendet Dojo.

Ich sag schon mal Danke im Voraus.

LG Jan

Hi,

über Google findest du viele Beispiele und die sind auch einfach zu finden :wink: .

Wenn du das via jQuery machen willst ist es nicht wirklich schwer.

Hier ist mal ein sehr einfaches Beispiel.
EDIT: Live-Beispiel: jsfiddle.net/funkiscript/NmE6k/
"#toTop" <-- div ID, welches nach oben gesetzt werden soll, beim scrollen

function fixDiv() { var $cache = $('#toTop'); //"200" <- Position ab wann es ge"fixed" wird if ($(window).scrollTop() > 200) //top: 0px <-- position wo es gefixed werden soll $cache.css({'position': 'fixed', 'top': '0px'}); else $cache.css({'position': 'relative', 'top': 'auto'}); } $(window).scroll(fixDiv); fixDiv();

mfg 99shi

Nach der Anmeldung ist man doch vermutlich in einer Sitzung mit Inhalt, der per PHP ausgeliefert
wird.
Von daher ist da java-script-Schnickschnack albern, überflüssig und nicht zuverlässig.
Stattdessen gibt man einfach den Anmeldebereich nur aus, wenn keine Sitzung offen ist.
Ist eine Sitzung offen, so gibt man stattdessen etwas aus, womit man die Sitzung beenden kann.
Da man diese beiden Inhalte verschiedenen Klassen oder Identifizierern zuordnen kann, kann
man damit auch problemlos in der statischen Stilvorlage verschiedene Dekorationen vorhalten.

Vielen Dank!!!

Genau nach dem hab ich gesucht. Firebug meldet zwar, dass irgendwo ein Fehler ist, funktioniert aber trotzdem alles.

@hoffmann: Wenn ich dich nicht falsch verstanden habe, dann soll die Sichtbarkeit der Zeile in der das Login-Feld drinnen ist, davon abhängen, ob man angemeldet ist oder nicht. Ich will aber das der header generell nicht so viel Platz verbraucht, also beim runterscrollen nur mehr die wichtigsten Inhalte des headers sichtbar sind, sprich nur mehr das Logo und das Menu.
Das wäre nicht so gut wenn die nicht-eingeloggten User immer so nen riesigen Balken im Bild haben. Aber trotzdem Danke!

LG Jan

Ok der Fehler stört meine innere Ruhe, weiß zufällig jemand wie man den wegbekommt^^

http://uploadix.de/image/s8V12.png

Update mal deine jQuery lib und das easing-Plugin. Die sind fast 4 Jahre alt.

Ok, hab das Problem gelöst, hab einfach den Aufruf der Funktion fixDiv() in body onload reinschreiben müssen. kA warum aber der Fehler is weg.

@hummer: funktionieren die Effekte wie lavalamp-menu etc. dann eh noch oder kommt da einiges an Codeänderung auf mich zu wenn ich das update?

Es hindert dich doch niemand daran, den gegebenenfalls zu großen Balken per CSS kleiner
zu machen, das ist doch allein deine Entscheidung, was du mit PHP ausgibst und was in der
Stilvorlage steht ;o)

Und wenn du da jetzt mit js herummanipulierst, bringt das doch ohnehin für jene nichts, die das
gar nicht aktiviert haben, entweder haben die dann eben einen dicken Balken oder aber du
machst für die eine Lösung, die auch ohne js funktioniert, wie es generell sinnvoll ist.
Ein wirklich großes Problem ist das natürlich nicht, denn wenn der Balken stört, kann ja jeder
einfach CSS und gegebenenfalls auch die Anzeige von Bildern abschalten, um überflüssigen
Kram einzusparen. Das Projekt wirkt natürlich besser durchdacht, wenn der Autor das selber
auf die Reihe bekommt ;o)