Hinzufügen einer CSS-Klasse Nach Bild-Verhältnis
Ich bin erstellen einer Bildergalerie mit Dutzenden von hoch-und Querformat-Bilder auf einer einzigen Seite. Ich möchte den Stil jedes Bild mit einem dynamisch hinzugefügte CSS-Klasse (z.B. ".landscape" für Querformat-Bilder) entsprechend seiner Ausrichtung.
Stieß ich auf den folgenden code (von 2003!) Für die Bestimmung des Verhältnis und eine Klasse hinzufügen, die für ein einziges Bild, aber ich brauche den Klassen Hinzugefügt werden, automatisch für alle Bilder innerhalb eines bestimmten div-id. Ehrlich gesagt, ich weiß nur nicht genug über JavaScript oder jQuery zu lösen, diese auf meinem eigenen.
<script language="JavaScript" type="text/javascript">
<!--
function getDim() {
myImage = new Image;
myImage.src="myimage.gif";//path to image
document.divImage.src=myImage.src;
var imgProp;
var width = myImage.width;
var height = myImage.height;
var ratio = width/height;
if ( ratio > 1 ) {
document.getElementById('image').className="portrait";
}
else {
document.getElementById('image').className="landscape";
}
}
//-->
</script>
Du musst angemeldet sein, um einen Kommentar abzugeben.
mit jQuery:
Ziemlich einfach jQuery:
Können sagen, dass Ihr mit div-Klasse
gallery
und Sie sind mit jQuery 🙂Dieser Weg ist länger, aber können Sie weitere Regeln hinzufügen (wenn es keine Grund, so zu tun :).. dh.:
$(this).width()
zu aufwendig ist. Sie unnötigerweise die gleiche jQuery-Objekt 3 - Zeiten, und Sie sind mit jQuery, um etwas zu tun es nicht tun müssen, ist überprüfen Sie einfachthis.width
var $this = $(this)
oder etwas, was ähnlich gut ist. Auch, raus aus der Gewohnheit, mit Hilfe von jQuery für alles, z.B..width()
wenn.width
auf die DOM-Knoten liefert Sie die gleiche Sache.Wenn die Einstellung img width/height stört mit css können Sie es als Daten-Breite/Daten-Höhe:
HTML:
Bearbeitet mVChr Beispiel