1. Wir werden um 10:30 Uhr die Forum Software auf die neue Version aktualiseren. Das Forum wird für ca. eine halbe Stunde geschlossen bleiben.

    Vielen Dank
    Macuser.de Community! Team

Javascript: Parameter an Funktion übergeben

Dieses Thema im Forum "Web Page Design" wurde erstellt von chrigu, 05.06.2005.

  1. chrigu

    chrigu Thread Starter MacUser Mitglied

    Beiträge:
    155
    Zustimmungen:
    0
    MacUser seit:
    08.03.2004
    Code:
    <script type="text/javascript">
    
    function bgschieb (pixel, elementId) {
        if (document.all && 'document.all.' + elementId + '.style.setAttribute') {
            'document.all.' + elementId + '.style.setAtrribute("backgroundPosition", "' + pixel + '", "false")';
        } else {
            'document.getElementById("' + elementId + '").style.backgroundPosition' = pixel ;
        }
    }
    </script>
    <ul>
    <li id="navi_home" onMouseover="bgschieb(-79px, navi_home)"><a href="#" title="Home">home</a>
    </li>
    </ul>
    
    Vielleicht erklärt das Script mein Vorhaben. Leider werden die Werte -79px und navi_home nicht von der Funktion verarbeitet, ich weiss allerdings nicht wie die Variablen innerhalb der Funktion notiert werden müssen.

    Das Script läuft nur mit fest definierten Werten innerhalb der Funktion, was aber nicht unbedingt zweckmässig ist.

    Ich danke schon mal für die guten Tips

    Gruess Chrigu
     
  2. lindic

    lindic MacUser Mitglied

    Beiträge:
    197
    Zustimmungen:
    5
    MacUser seit:
    20.11.2004
    Moin,

    das sollte mit einfachen Hochkommata gehen:

    HTML:
    <li id="navi_home" onMouseover="bgschieb('-79px', 'navi_home')">
     
  3. msslovi0

    msslovi0 MacUser Mitglied

    Beiträge:
    2.713
    Zustimmungen:
    115
    MacUser seit:
    20.03.2005
    Richtig. Aber wäre es nicht einfacher, das über css zu machen? Da kannst du auch in den Link-Status :)link, :active, :hover, :visited) angeben, welcher Teil des Hintergrundbildes angezeigt werden soll.

    Matt
     
  4. chrigu

    chrigu Thread Starter MacUser Mitglied

    Beiträge:
    155
    Zustimmungen:
    0
    MacUser seit:
    08.03.2004
    @lindic: Ok, ich hab jetzt noch die Hochkommatas eingefügt, wie in deinem Beispiel, leider ohne Erfolg. Ich bin mir immer noch unsicher, ob meine schreibweise so korrekt ist, wie oben angegeben. Ist das überhaupt so möglich? Ich hab das bisher nur in PHP angewendet, sollte doch auch mit Javascript funkioneren?

    @msslovi0: Das wollte ich zuerst so machen, aber Safari will nicht sobald ein Selektor mit a:hover und einer fest definierten Breite, Höhe und Position definiert wurde. Mit Firefox gings.
     
  5. msslovi0

    msslovi0 MacUser Mitglied

    Beiträge:
    2.713
    Zustimmungen:
    115
    MacUser seit:
    20.03.2005
    Der Javascript-Code hat, zumindest auf den ersten Blick, nichts falsches. Die JS-Konsole von Firefox hat sich aber als recht brauchbar erwiesen, wenn es darum geht JS-Code zu debuggen.

    Bzgl. css: Dieses Beispiel funktioniert bei mir plattform- und browserübergreifend fehlerfrei.

    Matt
     
  6. chrigu

    chrigu Thread Starter MacUser Mitglied

    Beiträge:
    155
    Zustimmungen:
    0
    MacUser seit:
    08.03.2004
    Ueehh... was fürn Zufall, du bist nicht etwa derjenige, der diese absolut perfekte Website Bartelme Design gebaut hat.

    Ich habe letzte Woche von einem Arbeitskollegen diesen Link bekommen, und stand dann am Wochenende staunend vor der Glotze. Es hat mich dann ermutigt an meinem Upgrade meiner Page weiter zu arbeiten. Jetzt staune ich nicht schlecht, dass der "Meister" höchstpersönlich mir Beihilfe leistet ;)

    Bin zurzeit auf Arbeit, aber werde am Abend mal den Source-Code auf meinen Webspace uploaden und versuchen die CSS Lösung in Angriff zu nehmen, vielleicht kannst du mir dann noch ein paar weitere Tips geben.

    THX! Chrigu
     
  7. Code:
    function bgschieb (pix, elementId) {
    var pixel=pix+'px';
        if (document.all && 'document.all.' + elementId + '.style.setAttribute') {
            'document.all.' + elementId + '.style.setAtrribute("backgroundPosition", "' + pixel + '", "false")';
        } else {
            'document.getElementById("' + elementId + '").style.backgroundPosition' = pixel ;
        }
    }
    </script>
    <ul>
    <li id="navi_home" onMouseover="bgschieb(-79, 'navi_home')"><a href="#" title="Home">home</a>
    </li>
    </ul>
    
    Oder wie im o.g. Beispiel ein Integer als Pixelparameter übergeben und direkt in der Funktion den Maßeinheitenstring konkatenieren.

    Yves
     
    Zuletzt von einem Moderator bearbeitet: 06.06.2005
  8. chrigu

    chrigu Thread Starter MacUser Mitglied

    Beiträge:
    155
    Zustimmungen:
    0
    MacUser seit:
    08.03.2004
    @Yves: Danke für den Tip! werde das am Abend mal korrigieren.

    Gruess Chrigu
     
  9. msslovi0

    msslovi0 MacUser Mitglied

    Beiträge:
    2.713
    Zustimmungen:
    115
    MacUser seit:
    20.03.2005
    Ich muss dich da enttäuschen, ich bin leider nicht der Meister pesönlich. Ich hatte eigentlich nur keine Lust, ein eigenes Beispiel zu schreiben :D Ich nutze die Seite aber immer wieder gerne, um mich mit Ideen zu versorgen.

    Es ist in der Tat beeindruckend, was Wolfgang Bartelme da ins Netz gestellt hat.

    css-Tipps kannst du von mir natürlich trotzdem bekommen.


    Matt
     
    Zuletzt bearbeitet: 06.06.2005
  10. chrigu

    chrigu Thread Starter MacUser Mitglied

    Beiträge:
    155
    Zustimmungen:
    0
    MacUser seit:
    08.03.2004
    Ok, ich habe das ganze mal auf den Webserver hinauf geschaufelt.

    Beispiel

    Ich habe nun die Funktion soweit modifiziert, das nur der Integer übergeben wird (ohne Massangabe).

    Das Problem liegt meiner Meinung noch an einem anderen Ort. Irgendwie wird die Funktion gar nicht aufgerufen und ich verstehe nicht was hier falsch läuft (siehe "test" link, ganz oben). Wer hat den Durchblick?

    Besten Dank schonmal für Hinweise

    Gruss Chrigu
     
    Zuletzt von einem Moderator bearbeitet: 24.10.2015
Die Seite wird geladen...

Diese Seite empfehlen