Ich baue eine Website, von denen die Desktop-Version 10 Bilder auf einmal (5x2) zeigt, die offensichtlich nicht gut aussieht auf einem kleinen Smartphone-Display. Um dieses Problem zu lösen, habe ich 10 Optionsfelder erstellt (die nur auf der mobilen Version der Website angezeigt werden) und nur das Bild anzeigen, das dem aktivierten Optionsfeld beiliegt. Das war sehr einfach, mit HTML und CSS3 wie folgt umzusetzen:Zeigen div auf Radio-Button-Check mit JS Fallback
HTML:
<input type="radio" name='pdr' id="pdr1"><label for="pdr1"> Click here</label>
<div class="populardevice" id="populardevice1">stuff in this div</div>
CSS:
.populardevice {
display: none;
}
input#pdr1:checked ~ #populardevice1 {
display: inline;
}
Das Problem ist, dass ältere Browser unterstützen nicht die ausgewählt Wähler. Meine Idee war, die CSS3-Methode zu verwenden, um das div anzuzeigen, wenn es unterstützt wird, und JavaScript als Fallback zu verwenden, wenn nicht. Ich habe bereits this gefunden, was ich grundsätzlich will. Das einzige Problem ist, wie erkenne ich, ob Unterstützung für den: checked Selector vorhanden ist? Ich dachte an Modernizr, aber es scheint, als würde alles, was ich tun würde, eine zusätzliche Klasse in meinem CSS erstellen, die "nicht überprüft" (richtig?) Sagt, was mir nichts nützen würde, da ich ein Stück von JS laufen lassen möchte Fall. Oder wäre für diesen Fall Modernizr fit sein, es so etwas wie diese Verwendung (Pseudo-Code - ich habe keine Ahnung, wie das noch zu schreiben, aber wenn es die Lösung ist, werde ich herausfinden, wie):
if (Modernizr.:checked supported) {
use that and terminate this function;
} else {
Execute the JavaScript function from the link above;
}
Oder Ihr rät mir, etwas völlig anderes zu implementieren?
Vielen Dank im Voraus.
Ich würde es nicht zu schwer für dich machen und dieses Problem nur mit JavaScript lösen, es ist ein kleines Stück Code, das die Gesamtleistung deiner Seite nicht beeinflussen würde. Lass es mich wissen, wenn du eine Antwort darauf sehen willst. Aber überlegen Sie zuerst, ob die Verwendung von Radiobuttons zum Anzeigen eines Bildes (auf mobilen Bildschirmen) eine gute Lösung ist ... warum möchten Sie das tun? Liegt es daran, dass zu viele Bilder vorhanden sind? Dann verstecken Sie einfach einige auf mobilen Bildschirmen. – JasonK
Ich weiß, dass sich dies nicht auf die Website-Leistung auswirkt, aber ich möchte so wenig Javascript verwenden, dass Personen, die es deaktiviert haben, die Website immer noch korrekt anzeigen können (wenn Ihr Browser keine CSS3 oder JS unterstützt) geschraubt (ish) - aber das ist eine Situation, die fast nie auftritt). Ich möchte den mobilen Nutzern eine Seite anbieten, auf der sie wenig bis gar nicht scrollen müssen, aber ich muss die Bilder bei Bedarf trotzdem anzeigen. – Viktor
Was ist falsch daran, 10 Bilder auf einem mobilen Bildschirm zu zeigen? Sind sie zu groß? Werden zu viele Bilder gezeigt? Wenn Sie sich diese Frage stellen, kommen Sie zum eigentlichen Problem. Ansonsten wäre Ihre Frage: "Wie kann ich überprüfen, ob eine CSS-Funktion mit Modernizr unterstützt wird?". Schlaus hat Sie bereits auf diese Frage in die richtige Richtung gebracht. – JasonK