Beiträge von Sempervivum

    Scheint mir eher ein Javascript-Problem zu sein: Auf der Seite mit dem Slider wird plugins.js nicht eingezogen. Auf der Seite ohne Slider sieht es so aus:

    Code
    <script type="text/javascript" src="../../js/jquery.js"></script>	<script type="text/javascript" src="../../js/plugins.js"></script>

    jQuery solltest Du natürlich nicht mehrfach einziehen, aber plugins.js brauchst Du wahrscheinlich.

    Leider verschluckt das Forum einen Teil der Zeilenumbrüche. Hier noch Mal der Code ohne Code-Tags:
    function show_elements(id) {
    var conts = document.querySelectorAll("div[id^='cont']");
    for (var i = 0; i < conts.length; i++) {
    if (conts[i].id == id) conts[i].style.display = "block";
    else conts[i].style.display = "none";
    }
    }
    Das "^" in document.querySelectorAll("div[id^='cont']") gibt an, dass die ID mit "cont" beginnt,
    d. h. dieser Selektor erkennt Übereinstimmung für "cont1", "cont2", "cont3" und ggf. weiter so.
    In "var conts" ist conts nur ein Name, er ist mehr oder weniger beliebig und könnte genau so gut a oder x sein.
    Aber es ist guter Stil, Variablennamen so festzulegen, dass zu erkennen ist, worum es sich handelt, daher habe ich conts gewählt.
    Diese Lösung hat den Vorteil, dass man nur das HTML zu erweitern braucht, wenn man neue Container hinzufügt und nichts
    am Javascript ändern muss.

    Dir gleichfalls frohe Weihnachten und ein gutes 2017!

    Einfacher ist es, den Parameter bei der Definition der Funktion direkt anzugeben. Ich hoffe, dies ist das, was Du erreichen wolltest:

    JavaScript
    function show_elements(id) {                var conts = document.querySelectorAll("div[id^='cont']");
                    for (var i = 0; i < conts.length; i++) {
                        if (conts[i].id == id) conts[i].style.display = "block";
                        else conts[i].style.display = "none";
                    }             }


    Und benutze in Zukunft Code-Tags. Das 

    JavaScript
    [i]

    wurde als BB-Code für "italic" interpretiert und verschluckt.

    1. Ich hätte dir gleich ein Javascript anbieten sollen, das mehrere Slider unterstützt. Das neue benutzt jQuery; Du musst jQuery einbinden, damit es funktioniert.
    2. Wenn ich das richtig sehe, brauchst Du für jeden Slider nur ein Textinput.
    3. Damit Du jeden Slider unterschiedlich stylen kannst, musst Du ihm einen spezifischen Identifier geben, z. b. eine ID, die für jeden unterschiedlich ist.
    4. Das Stylen mit ::-webkit-slider-runnable-track funtioniert nicht in allen Browsern. Wenn ich das richtig sehe, ist das Stylen von Formularelementen so eine Sache. In deinem Fall könnte es angebracht sein, auf das input-range zu verzichten und einen Slider mit HTML und CSS zu bauen. CSS ist jedoch nicht meine Stärke und vielleicht kann dir jemand anders mehr dazu sagen.

    Schau mal, ob dir dies weiter hilft:

    Code
    <input id="range" type="range" min="1" max="100" step="1">        <input id="input-for-range" type="text" pattern="[1-9][0-9]*">
            <script>
                document.getElementById("input-for-range").addEventListener("keyup", function () {
                    var rng = document.getElementById("range");
                    if (rng.validity.valid) rng.value = this.value;
                })         </script>

    Warum PHP? Das geht ganz einfach mit Javascript:

    Habe es jetzt nicht analysiert, sondern nur einen kurzen Blick in die Console geworfen:

    Zitat

    functions.js:12 Uncaught TypeError: Cannot read property 'prototype' of undefined(…)

    auf der Seite, wo es nicht funktioniert. Hast Du diese Galerie selbst geschrieben?

    Crux in diesem Forum: Du müsstest Code-Tags verwenden, denn hier:

    JavaScript
    Bilder[i]

    wird das geklammerte i als BB-Code für italic interpretiert und verschluckt.
    Aber: Leider verschluckt das Forum beim Verwenden von Code-Tags die Zeilenumbrüche.

    Speichere die Originalfarbe und das Originalbild in einem Data-Attribut:

    HTML
    <img id="dasbild" src="bild3.png" data-o-image="bild3.png" data-o-color="#345678" width="300" height="350">


    und registriere ein Mouseout-Event. Dann kannst Du die Original-Eigenschaften mit getAttribute() auslesen:

    JavaScript
    var ocolor = document.getElementById("dasbild").getAttribute("data-o-color");



    Edit: Mir fällt gerade auf, dass Du ja offenbar nur von dem Bildcontainer die Farbe und das Bild zurück setzen willst. Dann sind diese immer die selben und Du kannst sie hart im Javascript kodieren.

    Du schreibst: "dass nur Bilder der Klasse <div class="pics234">" Was hat es denn mit diesem div auf sich? Liegen die Bilder in diesem div? Dann müsstest Du einen anderen Selektor verwenden:

    Code
    var images = document.querySelectorAll("div.pics234 img");

    Ja, ist im wesentlichen ein Einzeiler:

    .pindex_list .pindex_product .pindex_pic { float:left; margin-right:15px; }
    .pindex_list .pindex_product .pindex_content { margin-left:215px; }
    @media only screen and (max-width: 799px) {
    .pindex_list .pindex_product .pindex_pic { margin-left:15px; }
    .pindex_list .pindex_product .pindex_content { margin-left:15px; }
    }

    (Forensoftware verschluckt konsequent die Zeilenumbrüche, daher ohne Code-Tags und Einrückungen.

    So funktioniert es:


    <img class="firstrow" src="images/dia0.jpg" alt="#"><img class="firstrow" src="images/dia1.JPG" alt="#"><img class="firstrow" src="images/dia2.JPG" alt="#"><img class="firstrow" src="images/dia3.JPG" alt="#">
    <style>
    .firstrow {
    max-width: calc(50% - 10px);
    padding: 5px; }
    </style>
    Die img-Tags müssen dabei ohne Zeilenumbruch in einer Zeile notiert werden.