Mitscrollendes Element
Sebastian Schimpf
- javascript
0 wahsaga0 sschumann0 Sebastian S.0 wahsaga
0 Struppi
Hallo liebe Leute,
ich würde gerne wissen, ob mir jemand sagen kann, wei ich in diesem Script festlegen kann, dass sie Startposition des mitscrollenden Layers
200 Pixel von oben betragen soll. Im Moment wird der Layer, obwohl ich ihn absolute 200 Pixel von oben positioniert habe, ganz oben an den Rand der Seite gesetzt.
Hier das Script, welches ich noch nicht ganz durchblicke:
<SCRIPT LANGUAGE="JavaScript">
/*
Created by Randy Bennet http://home.thezone.net/~rbennett/utility/javahead.htm
Featured on JavaScript Kit (http://javascriptkit.com)
For this and over 400+ free scripts, visit http://javascriptkit.com
*/
function setVariables() {
if (document.layers) {
v=".top=";
dS="document.";
sD="";
y="window.pageYOffset";
}
else if (document.all){
v=".pixelTop=";
dS="";
sD=".style";
y="document.body.scrollTop" ;
}
else if (document.getElementById){
y="window.pageYOffset";
}
}
function checkLocation() {
object="object1";
yy=eval(y);
if (document.getElementById)
document.getElementById("object1").style.top=yy
else
eval(dS+object+sD+v+yy)
setTimeout("checkLocation()",10);
}
</script>
Über eine Idee würde ich mich freuen!
Gruß,
Sebastian
hi,
ich würde gerne wissen, ob mir jemand sagen kann, wei ich in diesem Script festlegen kann, dass sie Startposition des mitscrollenden Layers 200 Pixel von oben betragen soll.
jedes element scrollt automatisch mit, so lange du es ihm nicht explizit anders vorschreibst.
vermutlich redest du von einem element, dass eben _nicht_ mit dem restlichen seiteninhalt aus dem anzeigebereich herausscrollen soll, sondern "stehen bleiben" soll.
Im Moment wird der Layer, obwohl ich ihn absolute 200 Pixel von oben positioniert habe, ganz oben an den Rand der Seite gesetzt.
wahrscheinlich, weil das script genau darauf ausgelegt ist.
du müsstest also an der stelle, wo die position immer wieder neu gesetzt wird, einen offset von 200px dazuaddieren.
For this and over 400+ free scripts, visit http://javascriptkit.com
for nix versteh visit ...
gruss,
wahsaga
Hallo Wahsaga,
ich habe die Addierung nun vorgenommen und es klappt nun mit der anfänglichen Positionierung. Mein Problem besteht darin, dass der Browser erst dann das Scrollen des Elementes starten soll, wenn vom User bereits 200 Pixel gescrollt wurde. Dadurch kann ich gewährleisten, dass das Element nicht 200 Pixel vom oberen Rand entfernt ist, wenn ich meinetwegen 400 Pixel gescrollt habe.
hier das aktuelle Script in Aktion:
http://www.zabdesign.de/pro/officio/doorway.html
Gruß,
Sebastian
200 Pixel von oben betragen soll. Im Moment wird der Layer, obwohl ich ihn absolute 200 Pixel von oben positioniert habe, ganz oben an den Rand der Seite gesetzt.
Was genau hast Du an
yy=eval(y);
nicht verstanden?
Hallo,
Was genau hast Du an
yy=eval(y);
nicht verstanden?
ehrlich gesagt habe ich das Ding garnicht verstanden ;-)
Fakt ist, dass es unschön aussieht, wenn ich beim Scrollen immer
den 200Pixel-Abstand nach oben habe, denn das Element, welches Mitscrollen soll, hat von Anfang an diese Position. Ich müsste im Prinzip abfangen, ab wann schon 200 Pixel gescrollt wurde und dann erst die Neupositionierung beginnen. Hast du vielleicht eine Idee, wie ich diese Abfrage gestelten kann?
Gruß,
Sebastian
hi,
Fakt ist, dass es unschön aussieht, wenn ich beim Scrollen immer
den 200Pixel-Abstand nach oben habe, denn das Element, welches Mitscrollen soll, hat von Anfang an diese Position. Ich müsste im Prinzip abfangen, ab wann schon 200 Pixel gescrollt wurde und dann erst die Neupositionierung beginnen.
du solltest erstmal genauer definieren, was du eigentlich willst.
so, wie ich dich jetzt verstehe, soll also das element beim laden der seite 200px abstand von oben haben.
wenn ich dann die seite nach unten scrolle, soll es erst so lange mitscrollen, bis es "oben" angekommen ist, und anschliessend dann oben stehen bleiben oder was ...?
darauf ist dein script derzeit nicht ausgelegt, dazu wären eine weitere abfrage nötig, die erstmal überprüft, ob der user derzeit die komplette seite nicht weiter als 200px gescrollt hat.
gruss,
wahsaga
Hallo wahsaga,
du hast schon genau verstanden, was ich erreichen möchte.
Ich möchte ermitteln, ob schon 200 Pixel gescrollt wurde und dann erst mit der Neupositionierung starten.
hier das aktuelle Script in Aktion:
[link http://www.zabdesign.de/pro/officio/doorway.html]
Ich habe schon mit dem Gedanken gespielt, ein anderes "schon fertiges" Script zu suchen, denn dieses nicht sehr sauber programmiert, glaube ich.
Gruß,
Sebastian
Hallo liebe Leute,
ich würde gerne wissen, ob mir jemand sagen kann, wei ich in diesem Script festlegen kann, dass sie Startposition des mitscrollenden Layers
200 Pixel von oben betragen soll. Im Moment wird der Layer, obwohl ich ihn absolute 200 Pixel von oben positioniert habe, ganz oben an den Rand der Seite gesetzt.
Du suchst:
position:fixed;
Daneben kannst du auf deiner Seite noch ne ganze Menge Skripte sparen, da das meiste was du machst mit CSS sowieso möglich ist (z.b. mit :hover) und so wie die Seite gestaltet ist, sie nicht mir Browsern funktioniert, die kein CSS können. (ich hätte arge Problem mit dieser Seite, das sie nicht auf meinen Monitor Platz hat - 936 pixel Breite ist eine ziemlich hohe Anforderung)
Hier das Script, welches ich noch nicht ganz durchblicke:
Ich kann dir ebenfalls ein Skript anbieten, was ungefähr deinen Anforderungen entspricht http://home.arcor.de/struebig/js/lib/test-sticky.htm, aber wie gesagt mittlerweile würde ich das eher mit CSS machen.
Struppi.