私は長い間検索してきましたが、私の問題を解決するより良い方法を見つけることができません.divをドラッグ可能にし、これらの2例1 2
のように各ハンドルで回転およびサイズ変更します..
Prasanth KC、Chango、Yi Jiang .. の回答については、これらのコードは正しくない可能性があります。1
.原点を中心に回転ポイントが必要です。
2.半径を考慮する必要があります。
しかし、ここでsinまたはcosを使用して、回転に半径を考慮する方法がわかりませんか?
どんな提案でも大歓迎です。
http://jsfiddle.net/tBgLh/8/
var dragging = false, target_wp;
$('.handle').mousedown(function(e) {
var o_x = e.pageX, o_y = e.pageY; // origin point
e.preventDefault();
e.stopPropagation();
dragging = true;
target_wp=$(e.target).closest('.draggable_wp');
$(document).mousemove(function(e) {
if (dragging) {
var s_x = e.pageX, s_y = e.pageY; // start rotate point
if(s_x !== o_x && s_y !== o_y){ //start rotate
var s_rad = Math.atan2(s_y, s_x);
var degree = (s_rad * (360 / (2 * Math.PI)));
target_wp.css('-moz-transform', 'rotate(' + degree + 'deg)');
target_wp.css('-moz-transform-origin', '50% 50%');
target_wp.css('-webkit-transform', 'rotate(' + degree + 'deg)');
target_wp.css('-webkit-transform-origin', '50% 50%');
target_wp.css('-o-transform', 'rotate(' + degree + 'deg)');
target_wp.css('-o-transform-origin', '50% 50%');
target_wp.css('-ms-transform', 'rotate(' + degree + 'deg)');
target_wp.css('-ms-transform-origin', '50% 50%');
}
}
})
$(document).mouseup(function() {
dragging = false
})
})// end mousemove
html
<div class="draggable_wp">
<div class="el"></div>
<div class="handle"></div>
</div>