제목이 잘못되어 죄송합니다. 문제를 올바르게 설명하는 방법을 알지 못했습니다.Div가 크기를 조정할 때 크기를 조정할 수있는 div가 올라갑니다.
div에 컨테이너를 추가하고 위치를 지정하기 위해 divs를 움직일 수 있습니다. this fidddle을보고 div 위에 마우스를 올리면 (빨간색을 제외하고), 새 컨테이너 버튼을 클릭하면 컨테이너가 추가됩니다. 그러나이 컨테이너의 크기를 조정하면 그 아래에있는 div가 맨 위에 표시됩니다.
내가 잘못했거나 의도 한 기능입니까? 어떤 겹침도 싫어하고 새로운 div가 기존 div 위 또는 아래에있는 것이 이상적입니다 (드래그 한 위치에 따라 다름).
편집 :
문제를 다시 만들려면, 다음 (하지)에 빨간색 상자에 마우스를 당신이 선택 상자가 나타 볼하시기 바랍니다. 이 메시지가 나타나면 한 번 클릭 한 다음 새 컨테이너 단추를 클릭하십시오. 그러면 빨간색 상자 위에 div가 추가됩니다. 빨간색 상자의 크기를 변경하려고하면 빨간색 상자가 위로 이동합니다. 내가 발견 한
편집 2
확인 "왜"이 일어나고있다. JQuery는 엘리먼트를 변경하여 크기 조정시 엘리먼트의 위치를 절대적으로 결정하므로 플로트가 작동하지 않습니다. 이것을 제거 할 방법이 있습니까?
HTML :
<div class="editable_content" style="padding:10px;">
<div style="width: 100%; padding:10px; height: 400px;">
<div style="width:100%; float:left; height:100px; background:red"></div>
</div>
</div>
<input type="button" id="new_container" value="New Container" />
CSS :
.edit_mouse_on {
background-color: #bcd5eb !important;
outline: 2px solid #5166bb !important;
}
.edit_selected {
outline: 2px solid red !important;
}
.ui-resizable-helper { border: 2px dotted #00F; }
JS :
var prevElement = null;
var selectedElement;
var enableHoverAction = true;
var allowedEditableClasses = "editable_content"
var hoverClass = "edit_mouse_on";
var selectedClass = "edit_selected";
document.addEventListener('mousemove', function (e) {
var elem = e.target || e.srcElement;
if (prevElement != null) detach(prevElement);
attach(elem);
prevElement = elem;
}, true);
function attach(obj) {
if (enableHoverAction) {
if (obj != null) {
if ($(obj).parents("div.editable_content").length) {
$(obj).addClass(hoverClass);
$(obj).bind("click", function (e) {
e.preventDefault();
select(this);
});
}
}
}
}
function select(obj) {
selectedElement = obj;
enableHoverAction = false;
$(obj).addClass(selectedClass);
$(obj).removeClass(hoverClass);
}
function detach(obj) {
if (enableHoverAction) {
if (obj != null) {
$(obj).removeClass(hoverClass);
$(obj).unbind("click");
}
}
}
$(document).ready(function() {
$("#new_container").click(function() {
$("<div/>", {
"style": "border:1px solid black; width:100px;height:100px; float:left;margin-bottom:1px;display:inline;clear:both",
text: "",
}).resizable({
helper: "ui-resizable-helper"
}).draggable({
cursor: "crosshair",
cursorAt: {
top: 0,
left: 0
}
}).prependTo(selectedElement);
});
});
코드를 추가해야하는 이유는 jsfiddle에 대한 링크 만있는 질문은 좋은 질문이 아니기 때문입니다. 더 자세한 설명을 보려면이 답변과 다른 메타를 참조하십시오. http://meta.stackexchange.com/a/114944 –
우리가 그 일을하는 동안 질문을 관련 코드로 업데이트 할 수 있다고 생각합니까? :) 감사. –
관련 코드 및 예제는 jsFiddle에 있습니다. 여기에 링크를 올리면 여기에 모든 내용을 게시 할 필요가 없습니다. 그러나 필 요하면 필자의 게시물을 대량 출력 할 것입니다 ... 그냥 메타 게시물을 읽으십시오. 말이된다. 감사. – webnoob