1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| <!DOCTYPE HTML>
<html>
<head>
<title>patrick WYSIWYG html </title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=10">
<style>
</style>
<script type= "text/javascript">
var Ed=document.getElementById("editeur");
var DX,DY,oX,oY;
var dragged;
var bordure;
typeof window.addEventListener == 'undefined' ? document.attachEvent("onmousemove",WhereMouse) : document.addEventListener('mousemove',WhereMouse,false);
typeof window.addEventListener == 'undefined' ? document.attachEvent("onmouseup",drag_onmouseup) : document.addEventListener('mouseup',drag_onmouseup,false);
function drag_onmouseup(ev) {
if (dragged!=null){
dragged.style.border=bordure;
X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
var obj=document.elementFromPoint(oX,oY); //oX et oY sont calculés dans le mousemove
var par=dragged.parentElement;
if (par.id!=obj.id){
obj.appendChild(dragged);
if(obj.id!="editeur"){dragged.style.left="30px";dragged.style.top="30px";obj.style.left=obj.offsetLeft+1+"px";}
if (obj.id=="editeur"){dragged.style.left=X-DX+"px";dragged.style.top=Y-DY+"px";}
}
if (obj.id=="editeur"){dragged.style.left=X-DX+"px";dragged.style.top=Y-DY+"px";}
}
dragged=null
} //On arrête le drag}
function dragstart(ev) {
dragged=ev.target; bordure= dragged.style.border;
dragged.style.border="2px dotted #8258FA";
X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
DX=0;DY=0; DX=X-dragged.offsetLeft; DY=Y-dragged.offsetTop;event.returnValue = false; if( event.preventDefault ) event.preventDefault();
}
function WhereMouse( ){
if(dragged!=null){
Mouse_X= event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);Mouse_Y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
Mouse_X-= DX;Mouse_Y-= DY; dragged.style.left = Mouse_X + 'px'; dragged.style.top = Mouse_Y + 'px'; dragged.style.position="absolute"; oX=Mouse_X-10; oY=Mouse_Y+5; }
}
</script>
<body>
<button onclick="insertdiv()"> ajouter un div </button>
<div id="editeur"contenteditable="true" style="height: 90%; min-height:600px;width: 90%;border:1px solid black;">
<p> du texte dans l'editeur</p>
<div id="red" class="divint" ondragstart="dragstart(event)" style="width:250px;height:250px;border:1px solid red;" ><p> du texte dans mon div </p></div>
<div id="blue" class="divint" ondragstart="dragstart(event)"style="width:200px;height:200px;border:1px solid blue;" ><p>du texte dans celui ci </p></div>
<div id="green" class="divint" ondragstart="dragstart(event)"style="width:100px;height:100px;border:1px solid green;" ><p>celui la aussi </p></div>
</div>
</body> |
Partager