TIPP: Scrollbarbreite herausfinden (Plattformunabhängig)

Dieses Thema im Forum "Web Page Design" wurde erstellt von tobias.beuth, 19.10.2004.

  1. tobias.beuth

    tobias.beuth Thread Starter MacUser Mitglied

    Beiträge:
    142
    Zustimmungen:
    0
    MacUser seit:
    06.09.2004
    Hallo,

    dies ist für alle die die Breite der Scrollbars in ihr Layout mit einbeziehen müssen

    Die Breite/Höhe der Scrollbars im Browser ist bekanntlich auf verschiedenen Plattformen und mit ggf. unterschiedlichen Themes für den Browser unterschiedlich.

    Ich hatte ab und zu ein Problem damit dass diese Breite total variabel ist.

    Normalerweise mache ich dann Browserabfragen und messe vorher die Breite der Dinger. Ist aber sehr aufwendig, und man kann nie alle Browser miteinbeziehen.

    Heute ist mir die Lösung dieses Problems eingefallen die ich euch hiermit in Form einer js-Funktion spenden möchte:

    function getScrollbarDimension () {
    sb_cont = document.createElement("DIV");
    sb_cont.style.overflow = "auto";
    sb_cont.style.position = "absolute";
    sb_cont.style.width = "100";
    sb_cont.style.height = "100";
    sb_cont.style.top = "0";
    sb_cont.style.left = "0";
    sb_cont.style.visibility = "visible";
    sb_push = document.createElement("DIV");
    sb_push.style.width = "100%";
    sb_push.style.height = "300";
    sb_push.style.visibility = "hidden";
    sb_bodys = document.getElementsByTagName("body");
    sb_body = sb_bodys[0];
    sb_body.appendChild(sb_cont);
    sb_old_width = sb_cont.style.width;
    sb_cont.appendChild(sb_push);
    dummy = parseInt(sb_old_width) - parseInt(sb_push.offsetWidth);
    sb_scrollbarwidth = parseInt(sb_old_width) - parseInt(sb_push.offsetWidth);
    sb_body.removeChild(sb_cont);

    return sb_scrollbarwidth;
    }

    P.S. - Wer wissen möchte wie es funktioniert:
    Dynamisch ein Div(overflow:auto) erstellen das ein anders Div (width:100%) enthält. Das innere Div auf eine Überlänge vergrössern. OffsetWidth des inneren Divs messen und von der ursprünglichen Breite des Divs abziehen.

    Vielleicht kann ja ausser mit noch jemand damit etwas anfangen.
     
Die Seite wird geladen...
Ähnliche Themen - TIPP Scrollbarbreite herausfinden
  1. t.bakr
    Antworten:
    12
    Aufrufe:
    1.282
  2. Der_Jan
    Antworten:
    2
    Aufrufe:
    766

Diese Seite empfehlen