Drehen Sie ein Bild in der Bildquelle in HTML


76

Gibt es eine Möglichkeit, die Quelle meiner Bildcodes hinzuzufügen, um mein Bild zu drehen?

Etwas wie das:

<img id="image_canv" src="/image.png" rotate="90">

Ich mache meine Bilder dynamisch und habe mich gefragt, ob ich zusätzlichen Code anhängen könnte, um sie zu drehen, wenn ich möchte.


Ist es möglich, mein Produktbild vom Backend zu drehen, als wäre ich ein importiertes Produktbild als Landschaft, die ich als Hochformat drehen muss.
Gem

Antworten:


100

Wenn Ihre Drehwinkel ziemlich gleichmäßig sind, können Sie CSS verwenden:

<img id="image_canv" src="/image.png" class="rotate90">

CSS:

.rotate90 {
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
}

Andernfalls können Sie dies tun, indem Sie ein Datenattribut in Ihrem HTML-Code festlegen und dann mithilfe von Javascript das erforderliche Styling hinzufügen:

<img id="image_canv" src="/image.png" data-rotate="90">

Beispiel jQuery:

$('img').each(function() {
    var deg = $(this).data('rotate') || 0;
    var rotate = 'rotate(' + deg + 'deg)';
    $(this).css({ 
        '-webkit-transform': rotate,
        '-moz-transform': rotate,
        '-o-transform': rotate,
        '-ms-transform': rotate,
        'transform': rotate 
    });
});

Demo:

http://jsfiddle.net/verashn/6rRnd/5/


Ich habe nach einer anderen Möglichkeit gesucht, das Bild durch den Server zu drehen, da ich versuche, das Bild zuzuschneiden, und wenn ich Webkit-Transformation oder jqueryrotate verwende, scheint es ein Problem mit meinem Cropper zu geben, also hoffte ich, dass ich es könnte Laden Sie das Bild gedreht.
Marchemike

Können Sie mehr Kontext und / oder ein Beispiel bereitstellen?
VLS

63

Du kannst das:

<img src="your image" style="transform:rotate(90deg);">

es ist viel einfacher.


<img src = "Image.jpeg" style = "transformieren: drehen (90 Grad);">
user9770563

2
Die einfachste und einfachste Lösung wirklich :) Danke
Shahin

4

Dieses CSS scheint in Safari und Chrome zu funktionieren:

div#div2
{
-webkit-transform:rotate(90deg); /* Chrome, Safari, Opera */
transform:rotate(90deg); /* Standard syntax */
}

und im Körper:

<div id="div2"><img src="image.jpg"  ></div>

Dies (und das obige .rotate90-Beispiel oben) drückt das gedrehte Bild jedoch höher auf die Seite, als wenn es nicht gedreht wäre. Sie sind sich nicht sicher, wie Sie die Platzierung des Bildes relativ zu Text oder anderen gedrehten Bildern steuern sollen.


Fügen Sie dem zu drehenden Objekt "style =" z-index: 1 "und dem Text oder dem, was Sie oben anzeigen möchten, style =" z-index: 2 "(oder eine beliebige Zahl über 1) hinzu.
user3241874

1

Dies könnte Ihre skriptfreie Lösung sein: http://davidwalsh.name/css-transform-rotate

Es wird in allen Browsern mit Präfix und in IE10-11 und allen noch verwendeten Firefox-Versionen ohne Präfix unterstützt.

Das heißt, wenn Sie sich nicht für alte IEs (den Fluch der Webdesigner) interessieren, können Sie die Präfixe -ms-und überspringen -moz-, um Platz zu sparen.

Die Webkit-Browser (Chrome, Safari, die meisten mobilen Navigatoren) werden jedoch weiterhin benötigt -webkit-, und es gibt immer noch eine große Kultfolge von Pre-Next Opera, und die Verwendung -o-ist sensibel.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.