Beiträge von Sempervivum

    Zitat

    Ich hab jetzt den Quelltext mit und ohne list-style-type: disc verglichen. Das komische ist, dass der Quelltext genau gleich aussieht.

    Das sollte doch unterschiedlich sein oder

    Die Erklärung ist, dass disc Default ist, d. h. wenn man nichts angibt, wird dieses eingestellt.

    Am einfachsten wäre es, wenn man die Seite online sehen könnte, dann kann man die Entwicklerwerkzeuge verwenden und sich schnell einen Überblick über das HTML und das wirksame CSS verschaffen.

    Zitat

    1) ist es möglich via Code zu beeinflussen, dass pro Produktseite auf dem Handy zwei Spalten anstatt nur einer angezeigt werden ?

    Ja, das ist kein Problem und wieder einmal ist Flexlayout die Lösung:

    Code
    ul.Products {
        clear: both;
        padding-left: 0;
        list-style-type: none;
        display: flex;
        flex-wrap: wrap;
    }
    Code
    ul.Products li {
        clear: both;
        overflow: hidden;
        margin: 0 0 6px;
        padding-bottom: 6px;
        display: flex;
        flex-direction: column;
        flex: 0 0 45%;
    }

    Durch den Prozentwert bei flex kannst Du steuern, wie viele Elemente in einer Zeile angezeigt werden und ggf. mit Mediaqueries die Anzahl umschalten.

    Am besten informierst Du dich grundlegend über Flexlayout, dann kannst Du solche Problem sebständig lösen und auf float verzichten:

    https://www.html-seminar.de/css-flexbox.htm

    https://css-tricks.com/snippets/css/a-guide-to-flexbox/

    Zitat

    In der mobilen Ansicht sind die Produktbilder einfach ultra klein und ich habe keine Ahnung wieso.

    Hier:

    http://mob-shop.de/epages/b2b_mob…TTBOARDS/Street

    sind bei mir die Bilder auch im Desktop-Browser recht klein und das liegt daran, dass die Breite durch das CSS auf 50px begrenzt wird:

    Code
    .Products .ProductSmallImage {
        max-width: 50px;
        height: auto;
        float: left;
    }

    Vergrößere das max-width und die Bilder werden größer.

    In der Tat, da sind sie, ich muss blind gewesen sein.

    Die Lösung ist dann einfach:

    Code
    ul.Products li {
        clear: both;
        overflow: hidden;
        margin: 0 0 6px;
        padding-bottom: 6px;
        display: flex;
        flex-direction: column;
    }

    Und dann kannst Du mit einer Mediaquery zwischen flex-direction: column; und flex-direction: row; umschalten.

    Dann müssen wir bei den Eventhandlern ansetzen, von denen oben die Rede war. Du hast ja in #2 das Wesentliche gepostet. Der Code ist gut kommentiert, so dass man nicht Zeile für Zeile analysieren muss.

    1. // ### `preloaded` Event ######
    2. // `Event`, since 1.1
    3. //
    4. // This event is fired by every preloaded image and adjusts the preloader indicator's
    5. // target position. Once all images are preloaded, `"loaded"` Event is triggered.
    6. //
    7. preloaded: function(e){

    D. h. Du musst das event "loaded" verwenden, denn das wird getriggert, wenn alle Bilder geladen sind. Also dein Ladebild über das Panorama- bzw. 3D-Bild legen und in der Funktion loaded unsichtbar machen:

    Code
    <div id="peelwrapper">
        <img src=" ... " hier alles was Du für Peel benötigst >
        <img src="loadimg.gif" id="loadimg">
    </div>

    CSS:

    Code
    #peelwrapper {
        position: relative;
    }
    #loadimg {
        position: absolute;
        left: 0;
        top: 0;
    }

    Und der Kern der Sache: In der Funktion loaded das Ladebild unsichtbar machen:

    Code
    // `"loaded"` Event is the one announcing when the instance is "locked and loaded".
                      // At this time, all is prepared, preloaded and configured for user interaction
                      // or animation.
                      //
                      loaded: function(e){
                        document.getElementById("loadimg").style.display = "none";
                        get(_images_).length > 1 || t.css({ backgroundImage: url(reel.substitute(opt.path+get(_image_), get)) }).attr({ src: cdn(transparent) });

    Wenn Du statt dessen die Opacity von 1 auf 0 änderst, kannst Du mit transition ein geschmeidiges Ausblenden des Bildes erreichen. Allerding musst Du es dann durch pointer-events: none; für die Mausaktionen durchlässig machen.

    Du kannst ein Bild unsichtbar laden, so dass es im Cache ist, indem Du ein Image-Objekt anlegst:

    Code
    var theimg = new Image();
    theimg.src="dein-bild.jpg";

    Du kannst dabei auch auf das Laden lauschen und daran eine Aktion anschließen:

    Code
    var theimg = new Image();
    theimg.onload = function() {
        // diese Funktion wird aufgerufen, wenn das Bild fertig geladen ist.
    };
    theimg.src="dein-bild.jpg";
    Zitat

    bereits ein Loading Gif erstellt und eingefügt. Auch bei mir wird es nur kurz dargestellt und sofort durch die anderen (Quell) Bilder aus den data-images ersetzt

    Wenn die anderen Bilder aus data-images sofort, d. h. nach einem ganz kurzen Moment, angezeigt werden, heißt das doch, dass sie auch ganz schnell geladen werden - Anzeige erst, wenn Ladevorgang beendet?

    Zitat

    Habe das Plugin bereits erfolgreich eingerichtet und es funktioniert soweit.

    Da bist Du besser als ich: Ich habe versucht, eine Testseite einzurichten und egal was ich mache, das gescrollte Bild ist immer riesengroß. ein background-image mit 6000px x 3000px.

    Ich hatte jedoch den Eindruck, dass das Bild, was im src-Tag angegeben wird, sofort angezeigt wird und dann durch das Bild, das in data-image(s) angegeben wird, nach dem Laden ersetzt wird. Versuche doch mal, im src-Tag dein Ladebild anzugeben und im data-image(s) das richtige.

    Bei Wikipedia ist es in einem Satz gut erklärt:

    Zitat


    Das namengebende Beispiel ist die Anordnung der Wörter in einem Lexikon: Sie werden zunächst nach ihren Anfangsbuchstaben sortiert, dann die Wörter mit gleichen Anfangsbuchstaben nach dem jeweils zweiten Buchstaben usw.

    Zitat

    In den Script ist eine if Abfrage die kontrollieren soll ob Zahl1 größer ist als Zahl2. Das Funktioniert größten Teils auch.

    Gibt man aber oben zb 300 ein und unten zb 99 , sagt die if abfrage aber das 99 nicht kleiner als 300 ist.

    Der Grund ist, dass beide Werte nicht numerisch sind, sondern Strings, da aus Eingabefeldern. Dann funktioniert der Vergleich etwas anders, nämlich lexikographisch, wie bei Wörtern in einem Lexikon:

    https://stackoverflow.com/questions/1863…g-compare-logic

    Wandle die String mit parseInt um und alles sollte gut sein.

    Das Skript scheint das Sortable von jQuery-UI zu benutzen? Habe ich selber gerade erst eingesetzt.

    Zitat

    Wenn ich das nun nach PHP schicke

    Ist mit Ajax kein Problem. Am besten kodierst Du das Array in JSON, dann kannst Du es leicht an das PHP-Skript schicken.

    Edit: Ich sehe gerade, in deiner Demo benutzt Du toString(), das würde genauso gut gehen, um das Array zu übertragen.

    Versuche dies:

    In horizontaler Richtung ändern sich die Kreise mit der Breite des Browserfensters.