2010-06-30 8 views
1

J'essaie de faire un div draggable en option, qui apparaît à certaines conditions. Cela fonctionne pour moi. L'emplacement initial est correct, mais le nouveau div pousse le panneau ci-dessous plus bas. Maintenant, je veux que le panneau déplaçable soit affiché sur le reste des panneaux (sans réorganiser les panneaux existants). Le code est ci-dessous, et je mets un exemple avec les bibliothèques js, et css sur mon site Web: link text (pas sûr de ce que la politique de stackoverflow est sur cela, car je ne vais probablement pas le laisser pour toujours).superposition d'un div draggable jquery

<html> 
<head> 
<title>Desgin Mayor</title> 
<style type="text/css"> 
#draggable { width: 120px; padding: 0.5em; border: 3px solid red; } 
</style> 
<script type="text/javascript"> 
</script> 




<link rel="stylesheet" href="css/designmayor.css" type="text/css" media="screen, projection"/> 
<script type="text/javascript" src="js/jquery-1.4.2.js"></script> 
<script type="text/javascript" src="js/jquery.ui.min.js"></script> 
<script type="text/javascript"> 
$(function() { 
     $("#draggable").draggable(); 
     $("#draggable").hide(); 
}); 
function test() { 
    for (i=0;i<10;i++) { 
      $('<div class="inputline">Line ' + i + '</div>').appendTo('#draggable'); 
    } 
    $('#draggable').show(); 
} 
</script> 
</head> 
<body> 
<div id="header"><div class="headertext">Design Mayor</div><div id="draggable" class="ui-widget-content inputpanel"> 
<p>Input Controls</p> 

</div></div> 

<div class="designmenu"> 
<ul class="menu"> 
    <li><a href="javascript:test()">Press me</a></li> 
</ul> 
</div> 
<div id="contentscontainer"> 
<div id="designpanel"> 
</div> 
</div> 
</body> 
</html> 

Le css pertinent J'utilise actuellement:

element.style { 
    display:block; 
    position:relative; 
} 
#draggable { 
    border:3px solid red; 
    padding:0.5em; 
    width:120px; 
} 
drag.html (line 5) 
.ui-widget-content { 
    background:url("images/ui-bg_flat_75_ffffff_40x100.png") repeat-x scroll 50% 50% #FFFFFF; 
    border:1px solid #AAAAAA; 
    color:#222222; 
} 
designmayor.css (line 62) 
.inputpanel { 
    border:1px solid #FF0000; 
    display:inline; 
    float:right; 
    font-size:65%; 
    left:10px; 
    width:7%; 
    z-index:5; 
} 

Toute aide est grandement appréciée

Répondre

1

Pour obtenir la superposition div pour ne pas perturber les éléments autour d'utiliser le positionnement absolu.

Changer votre CSS:

#draggable { 
    border:  3px solid red; 
    padding: 0.5em; 
    width:  120px; 
    position: absolute !important; 
    left:  113px; 
    top:  69px; 
} 

.
Ajustez left et top au goût. Ces 2 valeurs seront ignorées une fois que le glissement commence.

Notez que le absolute !important; est nécessaire parce que le plug-in Draggable UI ajoute automatiquement position:relative; et les documents ne constituent pas une façon plus facile de la remplacer.