Variable aus Funktion ausgeben

grünes-huhn

Mitglied
Hi!

ich hab mir von dyn-web ein Script runtergeladen für eine Scrollbar.

Ich hab folgendes:

PHP:
     setBarSize: function(scrollObj, barObj) {
            var lyr = document.getElementById(scrollObj.lyrId);
            var wn = document.getElementById(scrollObj.id);
          
                      if ( barObj.axis == 'v' ) {
                            var bar = document.getElementById(scrollObj.vBarId);
                            bar.style.height = (lyr.offsetHeight > wn.offsetHeight)? 
                                barObj.trkHt / ( lyr.offsetHeight / wn.offsetHeight ) + "px":             
                                barObj.trkHt - ( 2 * barObj.minY ) + "px";
                            barObj.maxY = barObj.trkHt - bar.offsetHeight - barObj.minY;
                                                   
                        } 
      
         },
nun bräuchte ich "bar.offsetHeight" als Variable die ich auch Außerhalb der Funktion benutzen kann.
Ich habs mal Versucht mit alert(), innerhalb der Funktion gehts, außerhalb nicht.

Wäre euch sehr dankbar! :)
 
Hi,

wenn du das Schlüsselwort var vor der Deklaration entfernst, sollte die Variable global verfügbar sein.

Aus
Code:
var bar = document.getElementById(scrollObj.vBarId);
wird
Code:
bar = document.getElementById(scrollObj.vBarId);
Ciao
Quaese
 
Also das geht auch nicht. Sobald ich das alert außerhalb der Funktion setze, geht gar nichts mehr, egal was im alert drin steht. :(

ich häng mal die Datei dran. Vielleicht kann mir jemand dann helfen.

WIe gesagt ich brauch das bar.offsetHeight außerhalb der Funktion (Für eine andere Seite).

Danke schonmal!! :)

Ps.: Die Funktion, die ich mein ist bei Zeile 163
 

Anhänge

Hi,

bei mir funktioniert es, wenn ich wie in meinem ersten Post beschrieben vorgehe.

Du musst jedoch beachten, dass bar erst nach dem Laden des Dokuments einen Wert besitzt. Im Beispieldokument scrollbar.html, das im ZIP-File von dyn-web.com enthalten ist, könnte das wie folgt aussehen:
Code:
if ( dw_scrollObj.isSupported() ) {
    dw_writeStyleSheet('css/scrollbar_demo.css')
    dw_Event.add( window, 'load', function(){
    	init_dw_Scroll();
        alert(bar.offsetHeight);
    });
}
(Quelle Orginalcode - www.dyn-web.com)

Ciao
Quaese
 
wow! Super danke

wie bekomm ich das nun hier rein:
<div style="position:absolute; vertical-align:bottom; top:127px;">

Statt 127 bräuchte ich die "bar.offsetHeight" Variable.


Vielen, vielen Dank!!

// EDIT

Ach mir ist nochwas aufgefallen.

In der Funktion selbst kommt das alert 2x, weil ich zwei scrollbalken auf der Seite habe.
Wenn ich das alert außerhalb (also wie du schreibst) aufrufe, kommt es nur einmal.
Gibt es eine Möglichkeit beide Werte aufzurufen?
 
Hi,

du kannst die Variable bar auch innerhalb der Funktion init_dw_Scroll zuweisen. Dort muss sowieso für jeden Scrollbereich ein Objekt erstellt werden, so dass sich hier die Möglichkeiten bieten, entsprechende Variablen zu deklarieren.

Den top-Wert kannst du ebenfalls erst nach dem Laden des Dokuments ändern. Dazu greifst du mittels des style-Objekts auf die top-Eigenschaft zu. Um auf das zu verändernde Element zugreifen zu können, muss es mit einer ID ausgezeichnet werden (im Beispiel div_0).
Weiterhin ist zu beachten, dass zunächst ein top-Wert über das style-Attribut angegeben ist.

Scriptbereich
Code:
function init_dw_Scroll() {
    var wndo = new dw_scrollObj('wn', 'lyr1');
    wndo.setUpScrollbar("dragBar", "track", "v", 1, 1);
    wndo.setUpScrollControls('scrollbar');
    wndo_0__bar = bar;

    var wndo_1 = new dw_scrollObj('wn_1', 'lyr1_1');
    wndo_1.setUpScrollbar("dragBar_1", "track_1", "v", 1, 1);
    wndo_1.setUpScrollControls('scrollbar_1');
    wndo_1__bar = bar;
}

// if necessary objects exists link in the style sheet and call the init function onload
if ( dw_scrollObj.isSupported() ) {
    dw_writeStyleSheet('css/scrollbar_demo.css')
    dw_Event.add( window, 'load', function(){
    	init_dw_Scroll();
        alert(wndo_0__bar.id + "\n" + wndo_1__bar.id);

        // top-Wert des DIVs zum ersten Scrollbereich anpassen
        document.getElementById("div_0").style.top = wndo_0__bar.offsetHeight + "px";
    });
}
(Quelle Orginalcode - www.dyn-web.com)

HTML-Element
Code:
<div id="div_0" style="position:absolute; vertical-align:bottom; top:127px;"></div>
Ciao
Quaese
 
juhuuuu!

Du bist ein Genie! Vielen Dank!
Es funktioniert wie es soll!

Nur eine kleine Verständnisfrage:

muss "wndo1__bar" so heißen, oder ist das vollkommen egal?
 
Hi,

hast du das "dyn-web-Paket" schon mal auf deinen Webserver geladen und von dort aufgerufen, und damit mein ich jetzt nicht den lokalen Webserver "XAMPP"?

mfg Maik
 

Neue Beiträge

Zurück