JQuery UI Sortable avec Défilement Horizontal se déplace tous les éléments vers le bas

Je veux permettre à l'utilisateur de trier les objets de gauche à droite avec une barre de défilement.

Les objets sont des boîtes avec HTML, tels que du texte, pas les images comme beaucoup d'autres exemples.

Le problème est que tant que l'utilisateur fait glisser l'un des objets, tous les autres décalent vers le bas pendant le déplacement.

Voici ce que j'ai:

HTML:

<div id="parent" class="parent">
  <div id="list" class="list">
    <div class="item">A</div>
    <div class="item">B</div>
    <div class="item">C</div>
  </div>
</div>

CSS:

.parent {
  height:64px;
  width:280px;
}
.list {
  background-color:#d0d0d0;
  white-space:nowrap;
  overflow-x:scroll;
  overflow-y:hidden;
  /*text-align:left;*/
}
.item {
  background-color:#404040;
  height:40px;
  width:100px;
  margin:4px;
  cursor:pointer;
  display:inline-block;
  /*float:left;*/
  /*float:none;*/
  /*clear:both;*/
}
.placeholder {
  height:40px;
  width:20px;
  display:inline-block;
  margin:4px;
}

Javascript:

$(function() {
  $('#list').disableSelection().sortable({
    scroll: true,
    placeholder: 'placeholder',
    //containment:'parent',
    axis: 'x'
  });
})

J'ai essayé beaucoup de différents paramètres, et de gauche, certains d'entre eux en tant que commentaires.

Meilleure façon de voir le problème est ici: http://jsfiddle.net/francispotter/gtKtE/

  • Regardez jsfiddle.net/sP3UZ de stackoverflow.com/questions/2544143/...
  • Merci pour la réponse, mais qui ne traite pas le problème. Les exemples dans les liens que vous avez fournies utilise des float, ce qui est bien si vous voulez que les objets pour former une mosaïque de la grille. Je veux que les éléments ne soient disposées horizontalement, et pour la région de défilement gauche/droite pour s'adapter à tous les items. J'ai donc besoin d'utiliser display:inline-block.
  • J'ai été de jongler avec le code, et aussi loin que je peux dire Sortable n'a jamais été conçu pour être utilisé à l'horizontale. Je pense que l'espace créé dans le haut de votre DIVs est invisible de l'espace réservé DIV d'une certaine sorte, qui ne peut pas être supprimé sans changer l'INTERFACE utilisateur de jQuery code lui-même. Voir aussi bugs.jqueryui.com/ticket/6702