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
| <!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta charset="utf-8">
<title>Insert title here</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.0/themes/sunny/jquery-ui.css">
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.0/jquery-ui.min.js"></script>
<script>
$( function(){
function draggContainOut(fenetre,draggable,left,top)
{
// oD -> objet draggable, fV -> fenêtre visible, cD -> content draggable créé dynamiquement
var oD = $(draggable),
fV = $(fenetre);
if(oD && fV)
{
var oDHeight = oD.outerHeight(),
oDWidth = oD.outerWidth(),
fVHeight = fV.height(),
fVWidth = fV.width(),
cDHeight = 2*oDHeight - fVHeight,
cDTop = oDHeight - fVHeight,
cDWidth = 2*oDWidth - fVWidth,
cDLeft = oDWidth - fVWidth,
cD = $('<div class="contentDraggable" style="position:absolute;width:'+cDWidth+'px; height:'+cDHeight+'px;top:-'+cDTop+'px;left:-'+cDLeft+'px;"></div>');
// si left ou top non renseigné, on centre l'élément dragué
var g = left != undefined ? cDLeft - parseInt(left) : parseInt(cDLeft - oDWidth/2 + fVWidth/2);
var t = top != undefined ? cDTop - parseInt(top) : parseInt(cDTop - oDHeight/2 + fVHeight/2);
oD.wrap(cD);
oD.css({'left':g+'px','top':t+'px'});
oD.draggable({
containment: fV.find(".contentDraggable")
});
}
}
/*draggContainOut(fenêtre visible, élément draggable, position initiale gauche, position initiale top)
si position gauche ou position top non renseignées la fonction centre l'élément dragué
*/
draggContainOut('#carte','#draggable');
});
</script>
<style>
#carte {
position:relative;
width: 1000px;
height: 700px;
overflow: hidden;
margin: auto;
border:1px solid black;
cursor:move
}
#draggable {
/*Utiliser les troisième et quatrième arguments de la fonction draggContainOut pour positionner les positions left et top */
width: 4100px;
height: 2500px;
position:absolute;
background-image: url("../images/imageTest.png");
}
</style>
</head>
<body>
<p>
<a href="">Déconnexion</a>
</p>
<p>
Bonjour Capitaine bienvenue à bord de votre vaisseau. Quelles sont vos ordre ?
</p>
<div id="carte">
<div id ="draggable"></div>
</div>
</body>
</html> |
Partager