2016-04-29 18 views
2

クリックするたびに画像を回転させたい...これを行うための関数を作成しましたが、画像をクリックするのは初めてです。さらに、イメージが回転すると自動的に幅と高さが変更されます。毎回同じ幅と高さを維持するにはどうすればいいですか?クリックするたびに画像を回転する

これは、関数である:

$(document).ready(function() { 
    $("img").click(function() { 
     $(this).rotate(45)  
    }) 
}) 
+1

ようなものでしょうか?これは標準のjQueryライブラリの一部ではありません –

+0

私はこのライブラリを使用しました:https://code.google.com/archive/p/jquery-rotate/downloads – AlexGH

+0

なぜ 'css'プロパティを使ってプラグインを実行できるのか'jquery'? –

答えて

1

を動作する可能性があり、作業の例では、 `.rotate()`から来るんこの

<div id="imgWrapper"> 
    <img src="Desert.jpg" id="image" onclick="rotateBy10Deg(this)"> 
</div> 

<script> 
    var delta =0; 
    function rotateBy10Deg(ele){ 
     ele.style.webkitTransform="rotate("+delta+"deg)"; 
     delta+=10; 
    } 
</script> 
1

プラグインは、それは、クリックが二度目のために働いていない理由です、canvasimgを変換します。あなたが示唆したように、私はそれをしなかったあなたのjQueryを変更するか、このdemo

$(document).ready(function() { 
    $("img").click(function() { 
    $(this).rotate(45); 
    }); 
    $('body').on('click', 'canvas', function() { 
    $(this).rotate(45); 
    }); 
}); 
0

を参照してください、私はjQueryのではCSSを使用:

CSS:

.rotate:active { 
transform: rotate(180deg) 
} 

をjQueryの:

$(document).ready(function() { 
     $("img").click(function() { 
//forcing img to rotate every time on click() 
      if ($(this).css("transform")=='none') { 
       $(this).css("transform", "rotate(180deg)"); 
      } 
      else { 
       $(this).css("transform","") 
      } 
     }) 
    }) 
+0

私は、私がしたいことがより良いことを認識したので、度数を45ではなく180に変更しました... – AlexGH

1

I CSSファイルにmax-heightmax-widthと設定することをおすすめします。これにより、画像が一定のサイズを超えないようになります。

1

このリンクはあなたを助けるかもしれない:

あなたがクリックしたくない場合は、そのリンクからまっすぐ撮影

Rotate image with onclick

Javascipt

var rotate_factor = 0; 

function rotateMe(e) { 
    rotate_factor += 1; 
    var rotate_angle = (180 * rotate_factor) % 360; 
    $(e).rotate({angle:rotate_angle}); 
} 

HTML

<img src='blue_down_arrow.png' onclick='rotateMe(this);' /></a> 
1

角度(45度)は、初期角度0を基準にして計算されたと思います。画像が45度になると、角度が変わると回転するだけです(90など)。そこで、以下のコードはこれだけで簡単にJavaScriptを使用して行うことができます

$(document).ready(function() { 
var angle = 0; 
$("img").click(function() { 
     angle = angle+45; 
    $(this).rotate(angle); 
}) 
}) 
関連する問題