Lukas Böhm: Möglichkeiten von JavaScript

Hi!
Ich habe in diesem Thread eine Antwort von Cheatah gelesen:

Dagegen sind ja HTML, CSS und JS eigentlich Kindergarten [Franzi]

nur weil Du die Möglichkeiten noch nicht erkannt hast. [Cheatah]

Ich kenne mich jetzt ein bisschen aus mit JS und würde gerne "größere" Sachen mit JS schreiben (lernen). Ich würde einfach gerne mehr programmieren als nur kleine Effekte für eine Homepage. Dies fällt mir aber aus zwei Gründen schwer:
1. Ich denke, dass ich die Möglichkeiten auch nicht ganz erkannt habe.
2. Mir fehlen die Ideen was ich machen könnte, weil ich a)die Möglichkeiten nicht erkannt habe und b)keine Beispiele dazu im Internet gefunden habe (hört sich vlt. blöd an, ist aber so :-)) die mir die Möglichkeiten nahelegen.
Zudem kommt dass mir auch Kenntnisse im Programmieren insgesamt fehlen.
Könnt ihr mir vielleicht helfen? Oder Tips bzw. Links geben?
szia, Lukas

  1. Hallo,

    1. Mir fehlen die Ideen was ich machen könnte, weil ich a)die Möglichkeiten nicht erkannt habe und b)keine Beispiele dazu im Internet gefunden habe (hört sich vlt. blöd an, ist aber so :-)) die mir die Möglichkeiten nahelegen.

    Zu den Möglichkeiten: http://tinymce.moxiecode.com/example_full.php?example=true

    Grüße

    Michael

    1. Hi!

      1. Mir fehlen die Ideen was ich machen könnte, weil ich a)die Möglichkeiten nicht erkannt habe und b)keine Beispiele dazu im Internet gefunden habe (hört sich vlt. blöd an, ist aber so :-)) die mir die Möglichkeiten nahelegen.

      Zu den Möglichkeiten: http://tinymce.moxiecode.com/example_full.php?example=true

      Danke schön für deine Antwort!
      Wenn ich das kann, dann bin ich gut :)
      Danke und szia, Lukas

  2. Hallo Lukas,

    1. Ich denke, dass ich die Möglichkeiten auch nicht ganz erkannt habe.
    2. Mir fehlen die Ideen was ich machen könnte, weil ich a)die Möglichkeiten nicht erkannt habe und b)keine Beispiele dazu im Internet gefunden habe (hört sich vlt. blöd an, ist aber so :-)) die mir die Möglichkeiten nahelegen.

    Befasse dich doch mal mit Animationen über window.setInterval() und/oder window.setTimeout()

    So (mit Frameset, weil ich noch nicht alle Möglichkeiten von CSS kannte) habe ich angefangen und dabei "Blut geleckt"!

    Am besten lernt man, wenn es sinnlich Spaß macht!

    Es muss ja kein kindischer Fisch sein, den du animierst, es kann ja auch ein Menü sein, das ein- und ausfährt!

    Weiter ging's bei mir mit Memorys, die ich heute auch anders machen würde.

    Gruß Gernot

    1. Hi!

      Befasse dich doch mal mit Animationen über window.setInterval() und/oder window.setTimeout()

      Das habe ich schon gemacht!

      Es muss ja kein kindischer Fisch sein, den du animierst, es kann ja auch ein Menü sein, das ein- und ausfährt!

      Auf das mit dem Menü bin ich noch nicht gekommen. Danke!

      Weiter ging's bei mir mit Memorys, die ich heute auch anders machen würde.

      Ok, ich werde versuchen, das mal umzusetzen. Vielen Dank für deine Antwort!
      szia, Lukas

  3. Hi,

    Ich habe in diesem Thread eine Antwort von Cheatah gelesen:

    tja, dann fühle ich mich einfach mal angesprochen :-)

    1. Ich denke, dass ich die Möglichkeiten auch nicht ganz erkannt habe.

    1.) JavaScript ist objektorientiert. Die meisten nutzen das, ohne es zu merken, indem sie einfach nur die Eigenschaften und Methoden bestehender Objekte verwenden. Nur die wenigsten entwickeln aber eigene Objekte oder nutzen das prototype-Modell von JavaScript, um bestehende Objekt-Typen zu erweitern.

    2.) Die Elemente des HTML-Dokuments sind aus JavaScript-Sicht ebenfalls Objekte: DOM.

    3.) Objekte lassen sich durch Referenzen aneinander binden, also z.B. eigene Objekte an Objekte des DOM-Baumes.

    4.) Event-Handler sind nur am Anfang ein ganz klein wenig kompliziert.

    1. Mir fehlen die Ideen was ich machen könnte,

    Schreibe eine Klasse, die sich an jedes HTML-Element bindet[1], welches über die Klasse "versuchEsEinfach" verfügt, und die dafür sorgt, dass beim Klick auf dieses Element dessen Hintergrundfarbe zwischen Rot und dem originalen Wert wechselt.

    Erweiterung: Erweitere das String-Objekt so, dass Du mittels
    '#F00010'.isRed()
    einen Boole'schen Wert erhältst, der aussagt, ob der Farbwert für Dich einen Rotton darstellt. Das Stichwort hierfür ist 'prototype'. Deine obige Klasse nutzt diese Funktion, um im Falle einer bereits roten Hintergrundfarbe mit Grün statt mit Rot zu wechseln. Wie man die tatsächliche Hintergrundfarbe eines Elements ermittelt ist genauso eine Nebenaufgabe, wie eine eventuelle Normalisierung des Wertes. Letzteres kannst Du mittels einer Color-Klasse machen.

    Zudem kommt dass mir auch Kenntnisse im Programmieren insgesamt fehlen.

    Keine Erfahrung mit OOP?

    Cheatah

    [1] Tipp: Das passiert leider nicht magisch. Du musst die entsprechenden Elemente suchen.

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi!
      Erstmal vielen Dank für deine Antwort!

      tja, dann fühle ich mich einfach mal angesprochen :-)

      Das ist gut! :-)

      1. Ich denke, dass ich die Möglichkeiten auch nicht ganz erkannt habe.

      1.) JavaScript ist objektorientiert. Die meisten nutzen das, ohne es zu merken, indem sie einfach nur die Eigenschaften und Methoden bestehender Objekte verwenden. Nur die wenigsten entwickeln aber eigene Objekte oder nutzen das prototype-Modell von JavaScript, um bestehende Objekt-Typen zu erweitern.

      Was ist das prototype-Modell? Bei SELFHTML und bei Google kommt nichts. Hast du evtl. einen Link zu einer Seite, wo das erklärt wird?

      1. Mir fehlen die Ideen was ich machen könnte,

      Schreibe eine Klasse, die sich an jedes HTML-Element bindet[1], welches über die Klasse "versuchEsEinfach" verfügt, und die dafür sorgt, dass beim Klick auf dieses Element dessen Hintergrundfarbe zwischen Rot und dem originalen Wert wechselt.

      Ok. Und da könnte ich dann beliebig viele Möglichkeiten hinzufügen. Z.B. dass sich die Hintergrundfarbe verändert. Und das wäre eine dann einfache JavaScript-Bibliothek?!

      Erweiterung: Erweitere das String-Objekt so, dass Du mittels
      '#F00010'.isRed()
      einen Boole'schen Wert erhältst, der aussagt, ob der Farbwert für Dich einen Rotton darstellt. Das Stichwort hierfür ist 'prototype'. Deine obige Klasse nutzt diese Funktion, um im Falle einer bereits roten Hintergrundfarbe mit Grün statt mit Rot zu wechseln. Wie man die tatsächliche Hintergrundfarbe eines Elements ermittelt ist genauso eine Nebenaufgabe...

      var hallo = document.style.backgroundColor ?

      ...wie eine eventuelle Normalisierung des Wertes. Letzteres kannst Du mittels einer Color-Klasse machen.

      Was ist eine Color-Klasse?

      Keine Erfahrung mit OOP?

      Da du JavaScript objektorientiert nennst: Doch ;-) Aber eigentlich nicht. Ich habe mich mal an PHP herangetastet, aber es sagt mir nicht so zu wie z.B. JavaScript. Deswegen habe ich es wieder gelassen.

      Vielen Dank für deine ausührliche Antwort!
      szia, Lukas

      1. Hi,

        tja, dann fühle ich mich einfach mal angesprochen :-)
        Das ist gut! :-)

        ich hoffe es ;-)

        Was ist das prototype-Modell? Bei SELFHTML und bei Google kommt nichts. Hast du evtl. einen Link zu einer Seite, wo das erklärt wird?

        Als Einstieg: http://aktuell.de.selfhtml.org/artikel/javascript/oomodell/

        Ok. Und da könnte ich dann beliebig viele Möglichkeiten hinzufügen. Z.B. dass sich die Hintergrundfarbe verändert. Und das wäre eine dann einfache JavaScript-Bibliothek?!

        Ja, beispielsweise.

        Wie man die tatsächliche Hintergrundfarbe eines Elements ermittelt ist genauso eine Nebenaufgabe...
        var hallo = document.style.backgroundColor ?

        Nope :-)

        ...wie eine eventuelle Normalisierung des Wertes. Letzteres kannst Du mittels einer Color-Klasse machen.
        Was ist eine Color-Klasse?

        Eine von Dir zu schreibende Klasse, die Dir den Umgang mit Farbwerten wie z.B. '#F0A', 'rgb(128, 196, 0)' und 'pink' erleichtert.

        Keine Erfahrung mit OOP?
        Da du JavaScript objektorientiert nennst: Doch ;-) Aber eigentlich nicht.

        Dann wäre OOP ein Einstiegspunkt für Dich, auch (bzw. besonders) außerhalb von JavaScript.

        Ich habe mich mal an PHP herangetastet, aber es sagt mir nicht so zu wie z.B. JavaScript. Deswegen habe ich es wieder gelassen.

        Das ist nicht schlimm. Solange Deine Erfahrung im Bereich der Programmierung noch gering ist, ist PHP für Dich ohnehin nicht empfehlenswert. Ich bin aber sicher, Du wirst früher oder später auch in diese Welt einsteigen.

        Vielen Dank für deine ausührliche Antwort!

        Nicht dafür.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi!

          Eine von Dir zu schreibende Klasse, die Dir den Umgang mit Farbwerten wie z.B. '#F0A', 'rgb(128, 196, 0)' und 'pink' erleichtert.

          Wie machst du es, wenn du solch eine Aufgabe lösen willst. Wie gehst du an soetwas heran? Ich habe keine Ahnung wie ich so etwas lösen könnte. Nicht wegen JavaScript sondern viel mehr wegen der Herangehensweise.

          Keine Erfahrung mit OOP?
          Da du JavaScript objektorientiert nennst: Doch ;-) Aber eigentlich nicht.

          Dann wäre OOP ein Einstiegspunkt für Dich, auch (bzw. besonders) außerhalb von JavaScript.

          Ich wollte es mal mit Java versuchen. Dazu habe ich das Onlinebuch "Java ist auch eine Insel" gefunden. Aber es hat keine Beispiele, wie z.B. SELFHTML es hat. Das erschwert das Lernen mit diesem Buch ziemlich. Deswegen habe ich meinen Einstieg in Java vertagt, bis ich mir ein Buch in der Bibliothek ausgeliehen habe, das hoffentlich besser ist :)

          Ich habe mich mal an PHP herangetastet, aber es sagt mir nicht so zu wie z.B. JavaScript. Deswegen habe ich es wieder gelassen.

          Das ist nicht schlimm. Solange Deine Erfahrung im Bereich der Programmierung noch gering ist, ist PHP für Dich ohnehin nicht empfehlenswert. Ich bin aber sicher, Du wirst früher oder später auch in diese Welt einsteigen.

          Vielen Dank für deine ausührliche Antwort!

          Nicht dafür.

          Ok! ;-)
          szia, Lukas

          1. Hi,

            Eine von Dir zu schreibende Klasse, die Dir den Umgang mit Farbwerten wie z.B. '#F0A', 'rgb(128, 196, 0)' und 'pink' erleichtert.
            Wie machst du es, wenn du solch eine Aufgabe lösen willst. Wie gehst du an soetwas heran?

            ich überlege mir zwei Dinge: Erstens die Schnittstelle. Was kommt rein, was geht wieder raus? Und zweitens die Abstraktion der Realität. Was ist das "Ding", das ich abbilden will? Welche Eigenschaften hat es, sowohl in Theorie als auch in Praxis? In diesem Fall überlege ich mir also, woraus eine Farbe eigentlich besteht und was ich mit ihr machen möchte.

            Dann wäre OOP ein Einstiegspunkt für Dich, auch (bzw. besonders) außerhalb von JavaScript.
            Ich wollte es mal mit Java versuchen. Dazu habe ich das Onlinebuch "Java ist auch eine Insel" gefunden. Aber es hat keine Beispiele, wie z.B. SELFHTML es hat.

            Java ist meiner Ansicht nach eine äußerst schlechte Wahl, um einen Einstieg zu finden, denn genau der ist bei Java schwerer als sonstwo. Wenn man erst mal drin ist, ist es eine hervorragende Sprache; aber bis es soweit ist, hat man einfach viel zu viele Dinge grundverschiedene zu lernen, die alle voneinander abhängen und eigentlich nur dann erlernbar sind, wenn man den Rest bereits verstanden hat.

            Das erschwert das Lernen mit diesem Buch ziemlich.

            Wirf es bitte nicht dem Buch vor ;-) Den Einstieg in OOP findest Du leichter z.B. mit Python. Vielleicht ist auch Flash eine gute Idee.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
      2. Hallo Lukas.

        Was ist das prototype-Modell?

        Dies wird meiner Meinung nach im Developer-Areal auf mozilla.org gut erklärt.

        Einen schönen Samstag noch.

        Gruß, Mathias

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        debian/rules
        1. Hi!
          Danke für den Link!

          Dies wird meiner Meinung nach im Developer-Areal auf mozilla.org gut erklärt.

          Aber schade, dass es das nicht auf Deutsch gibt. Schließlich gibt es diesen Artikel sieben mal in Polnisch und zwei mal auf Französisch :-)
          szia, Lukas