我目前正在使用拖放式Web應用程序,因此用戶可以計劃選取框佈局。使用可旋轉類移動鼠標滾動的停止元素
部分功能是用戶可以在畫布上旋轉某些傢俱。但是,當鼠標指針位於可旋轉元素上時,滾動似乎也會旋轉該元素,這會導致問題,特別是如果用戶已完美佈局,然後向下滾動頁面以填充表單 - 可能會弄亂佈局。
該應用程序使用jQuery中的可旋轉類,並實現可拖動和可拖拽的類。
這是我的javascript:
$(function() {
//Make every clone image unique.
var counts = [0];
var resizeOpts = {
handles: "all",
autoHide: true
};
var nw = $("<div>", {
class: "ui-rotatable-handle"
});
var ne = nw.clone();
var se = nw.clone();
$('.box div.ui-rotatable-handle').addClass("ui-rotatable-handle-sw");
nw.addClass("ui-rotatable-handle-nw");
ne.addClass("ui-rotatable-handle-ne");
se.addClass("ui-rotatable-handle-se");
$(".dragImg").draggable({
helper: "clone",
//Create counter
start: function() {
counts[0]++;
}
});
$("#dropHere").droppable({
drop: function(e, ui) {
if (ui.draggable.hasClass("dragImg")) {
$(this).append($(ui.helper).clone());
//Pointing to the dragImg class in dropHere and add new class.
$("#dropHere .dragImg").addClass("item-" + counts[0]);
$("#dropHere .img").addClass("imgSize-" + counts[0]);
//Remove the current class (ui-draggable and dragImg)
$("#dropHere .item-" + counts[0]).removeClass("dragImg ui-draggable ui-draggable-dragging").addClass('rotatable');
$('.rotatable').resizable().rotatable();
//$(".rotatable").append(nw, ne, se);
$(".small-table div[class*='ui-rotatable-handle-']").bind("mousedown", function(e) {
$('.rotatable').resizable().rotatable();
$('.rotatable').rotatable("instance").startRotate(e);
});
$(".item-" + counts[0]).dblclick(function() {
$(this).remove();
});
make_draggable($(".item-" + counts[0]));
$(".imgSize-" + counts[0]).resizable(resizeOpts);
}
}
});
var zIndex = 0;
function make_draggable(elements) {
elements.draggable({
containment: 'parent',
start: function(e, ui) {
ui.helper.css('z-index', ++zIndex);
},
stop: function(e, ui) {}
});
}
});
正如你可以看到,每個被拖動項目一旦它掉在了懸浮窗(#dropHere
格),然後保持在那裏,除非它是雙點擊克隆。我想知道,如果用戶在其上滾動鼠標,是否有任何方法來停止旋轉的元素?
編輯:這是應用程序的FIDDLE:
你可以創建一個小提琴或張貼的HTML代碼 –
我添加了一個鏈接到JS小提琴 –
巨大,野趣,看我的答案:) –