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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
| <!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 type="text/css">
.divint{position: absolute; width: 400px; height: 200px; background-color: #DDD; border: 1px solid #000;}
.divint:hover {box-shadow: 7px 3px 15px 0px #9b9b9b;}
.barre
{
position:absolute;
width: 100%;
height: 25px;
background-color: #E0ECF8;
cursor:pointer;
border-radius:15px 15px 0px 0px ;
margin-left:-1px;
box-shadow: 3px -3px 15px 3px #9b9b9b;
}
</style>
<script type="text/javascript">
var dragged = null;
var dX, dY;
function start_drag(objet,event){
dragged = objet;
event.returnValue = false;
if( event.preventDefault ) event.preventDefault();
//Coordonnées de la souris
var x = event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
var y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
//Coordonnées de l'élément
var eX = 0;
var eY = 0;
var element = objet;
do
{
eX += element.offsetLeft;
eY += element.offsetTop;
element = element.offsetParent;
} while( element && element.style.position != 'absolute');
//Calcul du décallage
dX = x - eX;
dY = y - eY;
}
function drag_onmousemove(event) {
if( dragged )
{
var x = event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
var y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
x -= dX;y -= dY; //On applique le décalage
dragged.style.position = 'absolute';
dragged.style.left = x + 'px';
dragged.style.top = y + 'px';
}
}
function drag_onmouseup(event)
{
dragged = null; //On arrête le drag&drop
}
function addEvent(obj,event,fct)
{
if( obj.attachEvent)
obj.attachEvent('on' + event,fct);
else
obj.addEventListener(event,fct,true);
}
addEvent(document,'mousemove',drag_onmousemove);
addEvent(document,'mouseup',drag_onmouseup);
function barrevisible(element){
var ef=document.getElementById("barre");
if( ef==null){
var bal=document.createElement("div");
bal.style.width=element.style.width;
bal.id="barre";
bal.className="barre";
bal.style.height=25+"px";
bal.style.border="1px solid black";
bal.contentEditable="false";
bal.style.marginTop="-25px";
bal.onmousedown=function(){ start_drag(this.parentElement,event);}
element.insertBefore(bal, element.childNodes[0]);
}
}
function erazebar(element){
var bar=document.getElementById("barre");
var x = event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
var y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
var obj=document.elementFromPoint(x,y)
if (obj.className !="barre" && obj.className !="divint" ){element.removeChild(bar);}
}
</script>
</head>
<body>
<div id="editeur"contentEditable="true" style="height: 600px; width: 700px;border:1px solid black;">
<p> du texte dans l'editeur</p>
<div class="divint" onmouseover="barrevisible(this)" onmouseout="erazebar(this)" >
du texte dans mon div</div>
</div>
</body>
</html> |
Partager