tom70: Scrollbar eines Divs umpositionieren?

Hallo Zusammen,

ich habe direkt im Body ein horizontal+vertikal zentriertes Div, das mit Width+Height 70% definiert ist.

Gibt es irgendeine Möglichkeit, die Scrollbar dieses Divs losgelöst auf 100% Height zu setzen und sie an den rechten Rand des Browsers zu pinnen?

Danke & Grüße, Tom

  1. Gibt es irgendeine Möglichkeit, die Scrollbar dieses Divs losgelöst auf 100% Height zu setzen und sie an den rechten Rand des Browsers zu pinnen?

    JavaScript.

    1. Hallo suit,

      danke für deine Antwort. Wie genau kann man das mit JS erreichen?

      Gruß Tom

      1. Hallo suit,

        danke für deine Antwort. Wie genau kann man das mit JS erreichen?

        Du könntest z.B. den slider von jQuery UI dafür missbrauchen.

        In Summe ist das aber alles ein sehr dämliches vorgehen - mit fällt spontan ein Fall ein wo das was du vorhast wirklich sinnvoll wäre.

        1. Hallo, danke für die Anregung. Gibt es eventuell eine Möglichkeit, bei der man die browsereigene Scrollbar verwenden kann? Ich möchte ja nur die Größe/Position ändern. Lösungen, bei denen native Features komplett nachgebaut werden, sagen mir nicht so zu.

          Danke Tom

          1. Om nah hoo pez nyeetz, tom70!

            verwende statt des Divs den body selbst.

            Matthias

            --
            Wer ein Problem beschreiben kann, hat es schon halb gelöst.                                             (Julian Huxley) http://www.billiger-im-urlaub.de/kreis_sw.gif
            1. verwende statt des Divs den body selbst.

              Dann ist der Scrollbar aber trotzdem im body-Element.

              1. Hallo. Danke für die Idee. Das Div ist gestalterisch gesetzt, ansonsten würde ich gerne den Body nutzen.

                suit, ich habe mich wohl missverständlich ausgedrückt, die Scrollbar soll sich nicht außerhalb des Browsers befinden. Sie soll im Body sein, aber eben am rechten Rand und über die gesamte Höhe und nicht nur über 70% (wie das Div).

                Gruß Tom

                1. Hallo. Danke für die Idee. Das Div ist gestalterisch gesetzt, ansonsten würde ich gerne den Body nutzen.

                  Das hat damit nichts zu tun, man kann das body-Element genauso formatieren wie ein div-Element und umgekehrt.

                  suit, ich habe mich wohl missverständlich ausgedrückt, die Scrollbar soll sich nicht außerhalb des Browsers befinden.

                  Nein, du hast dich schon deutlichgenug ausgedrückt - der Scrollbar kann unmöglich außerhalb des Browserfensters sein (mal davon abgesehen, dass dass man die GUI mancher Browser beliebig manipulieren kann - jedenfalls hast du darauf als Seitenautor keinen einfluss.

                  Sie soll im Body sein, aber eben am rechten Rand und über die gesamte Höhe und nicht nur über 70% (wie das Div).

                  Du hast das Grundkonzept von HTML und CSS nicht verstanden.

                  Es gibt Elemente - in einem HTML-Dokument hast du überlicherweise ein html-Element, ein body-Element und dann weitere Elemente - in deinem Fall ein div.

                  Wenn du einen Scrollbar am äußeren Rand des Browserfensters willst, muss ein Element die gesamte Höhe des Anzeigebereichs ausfüllen und äußerst rechts ausgerichtet sein (oder gleich auch die Breite beanspruchen).

                  Ob das nun das html-Element ist, das body-Element oder irgend ein x-beliebiges Element ist dabei egal - auf diese Tatsache bezog sich meine Antwort auf Matthias' Vorschlag.

                  Fassen wir also zusammen:
                   - Du hast ein Element welches du Scrollbar haben möchtest (in deinem Fall ein div-Element).
                   - Du möchtest aber dass der Scrollbalken für dieses Element nicht in diesem Element liegt sondern so tut als wäre es der Scrollbalken der den Überlauf des Anzeigebereis scrollbar macht - das ist gewöhnlicherweise das html- oder das body-Element.

                  Das ist weder mit HTML noch CSS technisch möglich da ein Scrollbares element seinen vertikalen Scrollbar am rechten (oder linken) Rand hat. Period.

                  Wenn du dennoch so tun möchtest möchtest, musst du den Scrollbar des Elements entfernen (overflow: hidden) und ein paar Elemente erzeugen die So aussehen als wären sie ein Scrollbar. Auf die diese Elemente setzt du entsprechende events die das Scrollen mit dem Mausrad, das klicken auf die Pfeile, das verschieben mit der Maus per Drag&Drop, das drücken der Bild-Oben- und Bild-Unten-Taste, der Tabulator-Taste, der Arrow-Keys [...] simuliert.

                  Grob gesagt, es ist ein irrer Aufwand der mit ziemlicher Sicherheit niemals 100%ig sicher funktionieren wird, die Erwartungskonformität bricht und eben einen irren Programmieraufwand verursacht. Zudem wirds ohne JavaScript nicht funktionieren.

                  Welcher Webdesigner auch immer sowas verbricht hat nicht viel Ahnung von seinem Handwerk - mach ihm das klar. Wenn das aus irgend einem Grund nicht möglich ist, bleibt dir nichts anderes übrig als diesen Schwachsinn zu programmieren da es - wie oben schon erwähnt - keine Lösung dafür gibt, da es schlichtweg nicht vorgesehen ist.

                  1. Hallo,

                    Das ist weder mit HTML noch CSS technisch möglich

                    deshalb hatte ich mit Themenbereich JS gepostet. Ich wollte eher darauf hinaus, die nativen Scrollbars der Browser zu verschieben/transformieren. Das Rad neu zu erfinden halte ich wie du für zu aufwendig und unzuverlässig.

                    Nein, du hast dich schon deutlichgenug ausgedrückt

                    Dann habe ich dich missverstanden. Es klang, als würdest du denken, die Scrollbar kann außerhalb des Browsers sein. Tut mir Leid, dass du Armer so viel schreiben musstest.

                    Also, danke für die Anregungen. Ich werde dann doch dem Body das Overflow geben.

                    Gruß Tom

                    1. Nein, du hast dich schon deutlichgenug ausgedrückt
                      Dann habe ich dich missverstanden. Es klang, als würdest du denken, die Scrollbar kann außerhalb des Browsers sein. Tut mir Leid, dass du Armer so viel schreiben musstest.

                      Ich hab' grade gesehen, das ich meine erste Antwort wohl in geistiger Umnachtung geschrieben habe :) die war ziemlich sinnbefreit.