[解決済み] javascriptで画像を回転させる
2022-03-15 12:04:14
質問
javascriptで画像を90度間隔で回転させたいのですが、どうすればいいですか?いくつかのライブラリを試しましたが jQuery ローテート と ラファエル 画像は中心を軸に回転しています。画像の四方にはたくさんのコンテンツがあり、画像が完全に正方形でない場合、画像の一部がコンテンツの上に乗ってしまうのです。画像は、max-withとmax-heightが設定されている親divの中に収まるようにしたいのです。
このようにjQuery rotateを使って( http://jsfiddle.net/s6zSn/1073/ ):
var angle = 0;
$('#button').on('click', function() {
angle += 90;
$("#image").rotate(angle);
});
結果はこのようになります。
そして、これが私が望む結果です。
どなたか、これを実現する方法をご存じですか?
どのように解決するのですか?
を組み合わせて使用します。
CSSの
transform
(必要に応じてベンダープレフィックスを付ける) と
transform-origin
のような、このようなものです。
(jsFiddleにもあります)
var angle = 0,
img = document.getElementById('container');
document.getElementById('button').onclick = function() {
angle = (angle + 90) % 360;
img.className = "rotate" + angle;
}
#container {
width: 820px;
height: 100px;
overflow: hidden;
}
#container.rotate90,
#container.rotate270 {
width: 100px;
height: 820px
}
#image {
transform-origin: top left;
/* IE 10+, Firefox, etc. */
-webkit-transform-origin: top left;
/* Chrome */
-ms-transform-origin: top left;
/* IE 9 */
}
#container.rotate90 #image {
transform: rotate(90deg) translateY(-100%);
-webkit-transform: rotate(90deg) translateY(-100%);
-ms-transform: rotate(90deg) translateY(-100%);
}
#container.rotate180 #image {
transform: rotate(180deg) translate(-100%, -100%);
-webkit-transform: rotate(180deg) translate(-100%, -100%);
-ms-transform: rotate(180deg) translateX(-100%, -100%);
}
#container.rotate270 #image {
transform: rotate(270deg) translateX(-100%);
-webkit-transform: rotate(270deg) translateX(-100%);
-ms-transform: rotate(270deg) translateX(-100%);
}
<button id="button">Click me!</button>
<div id="container">
<img src="http://i.stack.imgur.com/zbLrE.png" id="image" />
</div>
関連
-
JSアレイループと効率解析の比較
-
vueの補間表現とv-textディレクティブの違いについて
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
JavaScriptにおけるマクロタスクとミクロタスクの詳細
-
元のイベントが実行されなかった後に要素を追加するためのjQueryソリューション
-
vue ディレクティブ v-html と v-text
-
vueの補間表現とv-textディレクティブの違いについて
-
Vueの「データを聴く」原則を解説
-
nodejs unhandledPromiseRejectionWarning メッセージ
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
[解決済み] 親要素の高さに影響を与えるCSSの回転要素