可拖动的可调整大小在Chrome中不起作用
问题描述:
我在制作可调整大小和可拖动的图片时出现了一些问题。我的页面上有一列(可拖动)图像,可以放在div上(图像被克隆)。丢弃的图像应该可调整大小并可拖动。我已经写了下面的JavaScript:可拖动的可调整大小在Chrome中不起作用
$(function() {
$(".scrollable").scrollable();
$(".draggable").draggable({
helper: 'clone',
appendTo: 'body'
});
$("#canvas").droppable({
accept: '.draggable',
drop: function(e, ui){
if (ui.draggable.attr("class").indexOf('item') == -1){
var clone = $(ui.draggable).clone();
clone.removeClass("ui-draggable draggable");
clone.addClass('item');
$(this).append(clone);
$('.item').resizable({
containment: 'parent',
aspectRatio: true
}).parent().draggable({
containment: 'parent'
});
}
}
});
});
这会产生在Firefox下面的代码,它完美的作品:
<div id="canvas" class="white-box ui-droppable">
<div class="ui-wrapper ui-draggable" style="overflow: hidden; position: relative; width: 126px; height: 41px; top: 104px; left: 211px; margin: 0px;">
<img class="item ui-resizable" src="/images/qr-code/description-sm.png?1328705570" alt="Description-sm" style="resize: none; position: static; display: block; height: 41px; width: 126px;">
<div class="ui-resizable-handle ui-resizable-e"></div>
<div class="ui-resizable-handle ui-resizable-s"></div>
<div class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se" style="z-index: 1001;"></div>
</div>
</div>
在Chrome然而,元素被拖动并克隆,但他们都没有正在显示。这是显而易见的,从生成以下代码:
<div id="canvas" class="white-box ui-droppable">
<div class="ui-wrapper ui-draggable" style="overflow-x: hidden; overflow-y: hidden; width: 0px; height: 0px; top: auto; left: auto; margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; position: relative; ">
<img alt="Description-sm" class="item ui-resizable" src="/images/qr-code/description-sm.png?1328705570" style="resize: none; position: static; zoom: 1; display: block; height: 0px; width: 0px; ">
<div class="ui-resizable-handle ui-resizable-e"></div><div class="ui-resizable-handle ui-resizable-s"></div>
<div class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se" style="z-index: 1001; "></div>
</div>
</div>
不过,我不理解为什么图像的宽度和高度,其对应的外层div的来临为0px。一个简单的解决方案就是改变javascript内部的高度/宽度,但我相信会有更好的解决方案。
感谢您的帮助。
答
诀窍是专门将高度和宽度添加到img标记。没有那个div和图像高度被明确地设置为零(但仅在铬中)。
尝试添加位置:绝对到容器元素 – Evan 2012-02-09 14:09:13
仍然不起作用。这是你正在谈论的可丢弃容器,对吧? – 2012-02-09 14:13:04