【发布时间】:2013-01-30 08:39:37
【问题描述】:
我已经搜索了很长时间,但找不到更好的方法来解决我的问题,
使 div 可拖动,按每个句柄旋转和调整大小,例如这 2 个示例 1 2,现在它可以拖动了,但是可以旋转..
关于Prasanth K C、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>
【问题讨论】:
-
@Webars 感谢您的回复。我以前检查过这个问题,实际上在我的,平滑旋转示例来自seelts answer 我尝试使用该插件,但它只能与 jquery ui 和旧版本 jquery 一起使用......以及我不使用的其他插件不知道如何用手柄拖动
标签: javascript jquery css math