2

クロムの画像でサイズ変更可能なドラッグ可能な作業を行う際に問題が発生します。私のページには、側面に(ドラッグ可能な)イメージのリストがあり、divにドロップすることができます(イメージは複製されます)。ドロップされたイメージは、サイズ変更可能でドラッグ可能でなければなりません。ドラッグ可能なサイズ変更が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の、中に次のコードを生成します:私は、次のJavaScriptを書いたChromeで

<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> 

しかし、要素をドラッグして複製されているが、しかし、そうではありません表示されます。これは以下のコードが生成されるから明らかである。しかし

<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内から高さ/幅を変更することですが、もっと良い解決策があると確信しています。

ありがとうございました。

+0

位置を追加しようとしてください:コンテナ要素に絶対 – Evan

+0

まだ動作しません。これはあなたが話しているドロップ可能な容器ですよね? –

答えて

2

トリックは、具体的には高さと幅をimgタグに追加することでした。それがなければ、divと画像の高さは明示的にゼロに設定されます(ただしクロムのみ)。

関連する問題