JS ScrollBy() mit div:overflow Elementen?
Matthias
- javascript
0 wahsaga
Hallo,
ich habe folgendes Problem mit Javascript: Ich habe einen Bereich per <div overflow:hidden> erstellt. Es werden also keine Scrollbars angezeigt. Ich will den Benutzer aber trotzdem über kleine Icons scrollen lassen, brauche also eigentlich genau die ScrollBy() Funktionalität. Aber wie komme ich an den Bereich heran, um ihn scrollen zu können? Mit window.scrollby scrollt man ja nur das gesamte Fenster...
Vielen Dank!!
hi,
ich habe folgendes Problem mit Javascript: Ich habe einen Bereich per <div overflow:hidden> erstellt. Es werden also keine Scrollbars angezeigt. Ich will den Benutzer aber trotzdem über kleine Icons scrollen lassen, brauche also eigentlich genau die ScrollBy() Funktionalität. Aber wie komme ich an den Bereich heran, um ihn scrollen zu können? Mit window.scrollby scrollt man ja nur das gesamte Fenster...
mit scrollBy() kommst du hier vermutlich gar nicht weiter; und overflow:hidden ist auch "falsche baustelle" für das, was du vorhast.
hier würde es sich viel eher anbieten, mit der CSS-eigenschaft clip zu arbeiten.
damit kannst du einen "ausschnitt" eines elementes anzeigen lassen, und dieser ausschnitt wird dann "verschoben".
allerdings sollte dabei auch unbedingt eine lösung für javascriptlose besucher berücksichtigt werden.
gruß,
wahsaga
Vielen Dank für die Hilfe,
ich versuche jetzt den Bereich so zu definieren:
<div style="position:absolute; top:0px; left:0px; clip:rect(0xp 400px 400px 0px);">
// hier ist der Content
</div>
Das funktioniert aber nicht, der Bereich wird nicht eingegrenzt. Was mache ich falsch?
Vielen Dank!
Ich habe gerade selbst die Ursache gefunden.
Die Schachtelung sah so aus:
<table ...>
<div ...>
// content
</div>
</table>
Das war wohl nicht korrekt. Aber der Grund warum ich das gemacht habe: Wenn ich das <div> Tag um die Table herum schachtele, geht die absolute Position vom linken oberen Bildschirmrand aus, obwohl das ganze nochmal in einer anderen Tabelle ist. Wieso?
Danke!
hi,
Aber der Grund warum ich das gemacht habe: Wenn ich das <div> Tag um die Table herum schachtele, geht die absolute Position vom linken oberen Bildschirmrand aus, obwohl das ganze nochmal in einer anderen Tabelle ist. Wieso?
weil sich absolute positionierung immer am innersten vorfahrenelement orientiert, dessen position nicht static ist ist. wenn es kein solches gibt, richtet sie sich am viewport aus.
aber das wird doch hier jede woche mehrmals erzählt, und auch das selfhtml-beispiel weist darauf hin - wieso kriegen das so viele leute trotzdem nicht mit ...?
gruß,
wahsaga
Naja das ist schwer zu finden... Ich hab nach absolute und Position gesucht und rate mal wie viel man dann findet, dass nicht das gewünschte aussagt ;-)
Wie dem auch sei, es funktioniert jetzt mit einer absoluten Positionierung. Anscheinend ist clip aber doch nicht das Gelbe vom Ei, denn auch wenn es abgeschnitten wird, stellt der Browser dann eine Scrollbar dar (der abgeschnittene Content ist länger als die Seite hoch ist), kann man das noch irgendwie unterbinden? Ansonsten ist der Tipp top!