【发布时间】:2010-06-18 11:44:57
【问题描述】:
我有一个选择和拖动功能。基本上你可以选择 3 个元素并将它们拖到一起。
问题出在 Chrome 中。如果一个元素具有“-webkit-transform:rotate”属性,那么整个跨度就会上升。这很奇怪,因为它在 Firefox 中分叉很好。
您可以在以下位置查看一个工作示例: http://jsfiddle.net/K2EX9/4/ 只需在 Chrome 中尝试一下,用鼠标选择 3 个元素并拖动它们。
代码如下:
$('#selectable1').bind('dragSetup', function() {
var selected = $([]), offset = {top:0, left:0};
$('#selectable1 span.drag').draggable({
start: function(ev, ui) {
$(this).is("#selectable1 span.ui-selected") || $("#selectable1 span.ui-selected").removeClass("ui-selected");
selected = $("#selectable1 span.ui-selected").each(function() {
var el = $(this);
el.data("offset", el.offset());
});
offset = $(this).offset();
},
drag: function(ev, ui) {
var dt = ui.position.top - offset.top, dl = ui.position.left - offset.left;
selected.not(this).each(function() {
var el = $(this), off = el.data("offset");
el.css({top: off.top + dt, left: off.left + dl});
});
},
});
});
谢谢。
【问题讨论】:
-
我认为它在 Firefox 中工作并不奇怪,因为 Firefox 无论如何都不会关注“-webkit-transform”样式。
-
我在 FF 中也有一个 -moz-transform 并且它可以工作。我已经尝试在 Chrome 中简单地拖动一个旋转的元素,我得到了相同的“跳跃”。一定是 Chrome 错误