Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 31 bis 45 von 53
  1. #31
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: Slide Out Menu OHNE MooTools etc.?

    Zitat Zitat von ::JET::LI:: Beitrag anzeigen
    Eine schwerwiegende Negative Seite: Nichts passiert bei dem Klick aud Starten...
    deine Höhe ist 0 und wird das immer bleiben

  2. #32
    ::JET::LI:: ist offline Mitglied
    registriert
    08-04-2008
    Beiträge
    36

    AW: Slide Out Menu OHNE MooTools etc.?

    Die ehile schleife zählt step immer einen runter, aber nur, solange step-1 größer als oht ist, damit das ganze nicht ins minus geht...

    und das ist die formel:
    HTML-Code:
    step *= (oht/uht);
        step = Math.ceil(step);
        while (step-1 > oht)
        {
          step--;
        }
        oht -= step;
        obj.style.height = oht + "px";

  3. #33
    [-UFO-]Melkor ist offline Doppel-As
    registriert
    16-08-2006
    Beiträge
    141

    AW: Slide Out Menu OHNE MooTools etc.?

    Warum setzt du dann nicht gleich
    Code:
    step = oht+1;

  4. #34
    ::JET::LI:: ist offline Mitglied
    registriert
    08-04-2008
    Beiträge
    36

    AW: Slide Out Menu OHNE MooTools etc.?

    weiß nicht.. gibt doh viele möglichkeiten, das hilft aber nicht, den aktuellen fehler zu lösen...

  5. #35
    Avatar von Albu
    Albu ist offline Foren-Gott
    registriert
    04-07-2001
    Beiträge
    13.501

    AW: Slide Out Menu OHNE MooTools etc.?

    Zitat Zitat von ::JET::LI:: Beitrag anzeigen
    Die ehile schleife zählt step immer einen runter, aber nur, solange step-1 größer als oht ist, damit das ganze nicht ins minus geht...
    Weshalb kommt eine einfach Subtraktion nicht in Frage? Nicht kompliziert genug?
    Wenn man die Berechnung nämlich mal durchschaut hätte, dann könnte man ja ausrechnen, wieviele Schleifendurchläufe es geben wird und das Ergebnis einfach berechnen...

    Zitat Zitat von ::JET::LI:: Beitrag anzeigen
    und das ist die formel:
    HTML-Code:
    step *= (oht/uht);
        step = Math.ceil(step);
        while (step-1 > oht)
        {
          step--;
        }
        oht -= step;
        obj.style.height = oht + "px";
    Das ist keine Formel, das ist ein Stück Code. Eine Formel sieht eher so aus: f(x)=ax+b
    Im Grunde zeigt Deine Antwort worauf ich hinaus will: Du willst den Code komplett selbst schreiben, um zu lernen, nutzt dann aber Code als Vorlage, den Du nicht verstehst oder hinterfragst, als gegeben. Wo ist da der Lerneffekt? Was, wenn Du irgendwann mal eine quadratische Easing-Funktion einsetzen willst - oder ist Deine vielleicht bereits quadratisch??
    1. Get people to play Space Taxi
    2. Sell real estates on neptun
    3. Profit!

    IE is not a browser, it is a scream.


    Outside of a dog, a book is man's best friend. Inside of a dog, it's too dark to read.

  6. #36
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: Slide Out Menu OHNE MooTools etc.?

    hier ist mal die Mootools-Variante in deine optimierte Version gebracht. Albus quadratische Formel war da auch schon dabei, wobei ich nicht verstehe, wofür man das jemals braucht.

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title></title>
    <meta name="author" content="jet">
    <style type="text/css">
    <!--
    #dyn {
      position:relative;
      overflow:hidden;
      width:300px;
      background-color:#c0c0c0;
      height:0px;
    }
    
    #dyn_inner {
      width:300px;
      position:absolute;
      margin:0;
    }
    -->
    </style>
    <script language="javascript">
    isinuse = false;
    
    function formel(nPercent)
    {
      return (nPercent <= .5) ? Transition(2 * nPercent) / 2 : (2 - Transition(2 * (1 - nPercent))) / 2;
    }
    
    function Transition(nPercent)
    {
      return Math.pow(nPercent, 2);
    }
    
    function fangan()
    {
      if(isinuse == false)
      {
        nTime = new Date().getTime();
        obj = document.getElementById("dyn");
        uobj = document.getElementById("dyn_inner");
        nTo = uobj ? uobj.offsetHeight : 0;
        nFrom = obj ? obj.offsetHeight : 0;
        nDuration = 5000;
        step = 10;
        isinuse = true;
        inta = window.setInterval("fangan()", 10);
      }
      else
      {
        var nTime2 = new Date().getTime();
        if (nTime2 < nTime + nDuration)
        {
          var nDelta = formel((nTime2 - nTime) / nDuration);
          obj.style.height = Math.round((nTo - nFrom) * nDelta + nFrom) + "px";
        }    
        else
        {
          isinuse = false;
          window.clearInterval(inta);
        }
      }
    }
    
    </script>
    </head>
    <body>
    <a href="javascript:fangan();">Starten</a>
       <div id="dyn">
    <div id="dyn_inner">
    dsakcxjhwebintfuzcnsa<br>
    lfskdhjrsdgc<br>
    lkasjfghcirsdzgicsuzgjieudthgd<br>
    <br>
    aslkdjfcsiolzgucoelskjzgmxo<br>
    lösdjakjigfjciotrgfdjotrsugdjo<br>
    isduczhfiesrzugxhdiuxsezhgj8fdjz<br>
    skdjzfhgcifxsnug<br>
    
    <br>
    aksdjfhnchsdayjiomsufdxm
    
      </div>
      </div>
    </body>
    </html>

  7. #37
    Avatar von Albu
    Albu ist offline Foren-Gott
    registriert
    04-07-2001
    Beiträge
    13.501

    AW: Slide Out Menu OHNE MooTools etc.?

    Zitat Zitat von hesst Beitrag anzeigen
    Albus quadratische Formel war da auch schon dabei, wobei ich nicht verstehe, wofür man das jemals braucht.
    Es wird der Tag kommen, da brauchst Du eine Bewegung die beschleunigt, sanft abbremst, "bounced" oder was auch immer, und dann wirst Du lernen, dass eine lineare Easing-Funktion da ziemlich ungeeignet ist.
    1. Get people to play Space Taxi
    2. Sell real estates on neptun
    3. Profit!

    IE is not a browser, it is a scream.


    Outside of a dog, a book is man's best friend. Inside of a dog, it's too dark to read.

  8. #38
    ::JET::LI:: ist offline Mitglied
    registriert
    08-04-2008
    Beiträge
    36

    AW: Slide Out Menu OHNE MooTools etc.?

    Die allgemeine EaseOut Formel lautet:

    Code:
    diff =  Zielposition.y - momentanePosition.y
    easingFaktor = 20;
    momentaneposition.y += diff / easingFaktor;
    aber der Fehler besteht immer noch...

  9. #39
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: Slide Out Menu OHNE MooTools etc.?

    Zitat Zitat von ::JET::LI:: Beitrag anzeigen
    aber der Fehler besteht immer noch...
    http://forum.jswelt.de/javascript/43...tml#post276902 (Slide Out Menu OHNE MooTools etc.?) jedenfalls wenn dein code noch geblieben ist

    obj.style.height = oht = 0 ===>

    step *= (oht/uht); => step *= 0/x = 0
    step = Math.ceil(step); => step = 0
    while (step-1 > oht) => bedingung ist false
    {
    step--;
    }
    // => step= 0
    oht -= step; oht -= 0 = 0
    obj.style.height = oht + "px"; => obj.style.height = 0
    Geändert von tsseh (16-07-2008 um 16:31 Uhr)

  10. #40
    ::JET::LI:: ist offline Mitglied
    registriert
    08-04-2008
    Beiträge
    36

    AW: Slide Out Menu OHNE MooTools etc.?

    ok, fehler erkannt, was kann man gegen ihn machen?

  11. #41
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: Slide Out Menu OHNE MooTools etc.?

    Zitat Zitat von ::JET::LI:: Beitrag anzeigen
    ok, fehler erkannt, was kann man gegen ihn machen?
    Ihn rausmachen?

  12. #42
    ::JET::LI:: ist offline Mitglied
    registriert
    08-04-2008
    Beiträge
    36

    AW: Slide Out Menu OHNE MooTools etc.?

    den Fehler beheben - wie?

    aktueller Quelltext:

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title></title>
    <meta name="author" content="jet">
    <style type="text/css">
    <!--
    #dyn {
      position:relative;
      overflow:hidden;
      width:300px;
      background-color:#c0c0c0;
      height:0px;
    }
    
    #dyn_inner {
      width:300px;
      position:absolute;
      margin:0;
    }
    -->
    </style>
    <script language="javascript">
    isinuse = false;
    function fangan()
    {
    if(isinuse == false) {
      obj = document.getElementById("dyn");
      step = 10;
      uobj = document.getElementById("dyn_inner");
      oht = obj.offsetHeight;
      uht = uobj.offsetHeight;
      isinuse = true;
      inta = window.setInterval("fangan()", 10);
      } else {
        step *= (oht/uht);
        step = Math.ceil(step);
        while (step-1 > oht)
        {
          step--;
        }
        oht -= step;
        obj.style.height = oht + "px";
        uobj.style.marginTop = oht-uht;
        if(oht==uht) {
          isinuse = false;
          window.clearInterval(inta);
        }
      }
    }
    
    </script>
    </head>
    <body>
    <a href="javascript:fangan();">Starten</a>
       <div id="dyn">
    <div id="dyn_inner">
    dsakcxjhwebintfuzcnsa<br>
    lfskdhjrsdgc<br>
    lkasjfghcirsdzgicsuzgjieudthgd<br>
    <br>
    aslkdjfcsiolzgucoelskjzgmxo<br>
    lösdjakjigfjciotrgfdjotrsugdjo<br>
    isduczhfiesrzugxhdiuxsezhgj8fdjz<br>
    skdjzfhgcifxsnug<br>
    
    <br>
    aksdjfhnchsdayjiomsufdxm
    
      </div>
      </div>
    </body>
    </html>

  13. #43
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: Slide Out Menu OHNE MooTools etc.?

    Zitat Zitat von ::JET::LI:: Beitrag anzeigen
    den Fehler beheben - wie?
    Code:
    step *= (oht/uht);
        step = Math.ceil(step);
        while (step-1 > oht)
        {
          step--;
        }
        oht -= step;
        obj.style.height = oht + "px";
    sieht mir nicht wie
    Code:
    diff =  Zielposition.y - momentanePosition.y
    easingFaktor = 20;
    momentaneposition.y += diff / easingFaktor;
    aus.
    Deine Formel umzusetzen ist ja nicht mal mehr eine Fleissaufgabe
    Code:
    var diff =  uht - oht;
        easingFaktor = 20;
        oht += diff / easingFaktor;
        obj.style.height = oht + "px";

  14. #44
    ::JET::LI:: ist offline Mitglied
    registriert
    08-04-2008
    Beiträge
    36

    AW: Slide Out Menu OHNE MooTools etc.?

    das ist nur die allgemeine easingformel, diese nutze ich aber hier nicht... ok - ich gebe zu, dass ich den Mittelteil (wer sie kennt) aus der Klapptabelle übernommen habe, hier ein funktionierendes Beispiel:

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Klapptabelle!</title>
    <style type="text/css">
    <!--
    div.dyn {
      position:relative;
      overflow:hidden;
      width:300px;
      background-color:#c0c0c0;
    }
    
    div.dyn table {
      width:300px;
      position:absolute;
      margin:0;
    }
    -->
    </style>
    <script type="text/javascript">
    <!--
    var Divs = new Array();
    var Toggles = new Array();
    
    function slide(num, flag){
      obj = Divs[num];
      window.clearTimeout(obj.motion);
      var step=10;
      uobj = obj.getElementsByTagName('TABLE')[0];
      oht = obj.style.height;
      oht = oht.substring(0, oht.indexOf('px'));
      oht = parseInt(oht);
      uht = uobj.offsetHeight;
      if(flag>0){
        step*=(1-oht/uht);
        step = Math.ceil(step);
        while ((step-1) > (uht-oht))
          step--;
        oht+=step;
        obj.style.height= oht + 'px';
        uobj.style.top = oht-uht;
        if(oht!=uht)
          obj.motion = window.setTimeout("slide("+ num +","+ flag +")", 10);
        else
          window.clearTimeout(obj.motion);
      } else {
        step*=(oht/uht);
        step = Math.ceil(step);
        while (step-1 > oht)
          step--;
        oht-=step;
        obj.style.height= oht + 'px';
        uobj.style.top = oht-uht;
        if(oht!=0){
          obj.motion = window.setTimeout("slide("+ num +","+ flag +")", 10);
        } else {
          window.clearTimeout(obj.motion);
        }
      }
    }
    
    function init () {
      var j = 0;
      for (i=0; i<document.getElementsByTagName('DIV').length; i++ ) {
        if(document.getElementsByTagName('DIV')[i].className=="dyn"){
          Divs[j] = document.getElementsByTagName('DIV')[i];
          Divs[j].motion=false;
          Divs[j].style.height="0px";
          Table = Divs[j].getElementsByTagName('TABLE')[0];
          Table.style.top = -1*(Table.offsetHeight+Table.offsetTop) + 'px';
          j++;
        }
      }
      j = 0;
      for (i=0; i<document.getElementsByTagName('A').length; i++ ) {
        if(document.getElementsByTagName('A')[i].className=="dyn"){
          Toggles[j] = document.getElementsByTagName('A')[i];
          Toggles[j].flag = 1;
          Toggles[j].j=j;
          Toggles[j].onclick = function () {
                                 slide(this.j, this.flag);
                                 this.flag*=-1;
                               }
          j++;
        }
      }
    }
    //-->
    </script>
    </head>
    <body onload="init()">
    <a href="javascript:void(0)" class="dyn">Hier</a>
      <div class="dyn">
        <TABLE BORDER="0">
          <TR>
    
            <TD>
    dsakcxjhwebintfuzcnsa<br>
    lfskdhjrsdgc<br>
    lkasjfghcirsdzgicsuzgjieudthgd<br>
    <br>
    aslkdjfcsiolzgucoelskjzgmxo<br>
    lösdjakjigfjciotrgfdjotrsugdjo<br>
    isduczhfiesrzugxhdiuxsezhgj8fdjz<br>
    skdjzfhgcifxsnug<br>
    <br>
    aksdjfhnchsdayjiomsufdxm
    
            </TD>
    
          </TR>
        </TABLE>
      </div>
    
      Weiterer Inhalt
    </body>
    </html>
    Ich will aber ohne die init() Funktion und ohne die Tabelle im <div class="dyn"> arbeiten...

  15. #45
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: Slide Out Menu OHNE MooTools etc.?

    also jetzt weiß ich auch nicht mehr was du eigentlich willst.
    Du hast den teil fürs zuklappen erwischt, nimm den teil mit flag > 0 fürs aufklappen.
    Und was ist die
    Zitat Zitat von ::JET::LI:: Beitrag anzeigen
    allgemeine easingformel
    die du hier nicht nehmen willst? Und warum willst du die nicht nehmen?

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Ähnliche Themen

  1. Script einfügen
    Von tanne im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 06-02-2008, 10:36
  2. Menubar Problem
    Von watchword-anaki im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 12-01-2007, 12:36
  3. Defektes (?) Menü
    Von Lydia.h im Forum JavaScript
    Antworten: 12
    Letzter Beitrag: 22-09-2005, 11:41
  4. Menü mit Untermenü umprogrammieren
    Von bubu-der-uhu im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 04-05-2005, 11:57
  5. JavaScript umändern
    Von Nonens im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 11-04-2002, 12:03

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •