10

jQueryUI a obtenu un plugin bien, Sortable: http://jqueryui.com/demos/sortable/ Je suis très heureux avec ce plugin, mais je manque qu'une seule chose. Et au lieu de laisser les éléments qui changent de position pop/jump à sa nouvelle position, j'aimerais qu'ils "glissent" vers cette nouvelle position à la place. En d'autres termes, faites-en un peu plus lisse.Plugin jquery triable avec "effet coulissant"?

J'ai cherché le net depuis trois jours et havn't trouvé un plug-in qui fait ça (!?! ??). Je veux dire, il doit y en avoir un, n'est-ce pas? J'ai également essayé de modifier un peu le code par moi-même, et je l'ai fait fonctionner (en clonant l'élément, en faisant glisser le clone vers la nouvelle position, puis en supprimant le clone). masquer l'élément d'origine et le masquer après la suppression du clone). Mais ça ne marche pas très bien, et je pensais qu'il devait y en avoir un meilleur quelque part!

Je suis vraiment mendier de l'aide. De toute modification de l'aide, ou si vous avez vu un plug-in qui fait cela, s'il vous plaît (:

+0

Je remarqué maintenant pourquoi ma méthode « ne fonctionne pas ». Il semble que si je traîne mon élément trop vite, le script jquery-ui ne remarque pas que je l'ai même traîné, lol. J'ai même téléchargé une nouvelle copie fraîche (juste pour être sûr) et ai essayé de la traîner très rapidement au-dessus des autres, et parfois elle échoue. Donc, il y a un problème avec le code original alors .. bleh – Eric

Répondre

8

si vous regardez le sortable demo with placehoder et utilisez le code suivant pour initialiser le sortable, vous verrez un AC glissant tion dans l'espace réservé

$(function() { 
    $("#sortable").sortable({ 
    placeholder: 'ui-state-highlight', 
    start: function (e,ui){  // new lines to 
     $(ui.placeholder).slideUp(); // remove popping 
    },        // effect on start 
    change: function (e,ui){ 
     $(ui.placeholder).hide().slideDown(); 
    } 
    }); 
    $("#sortable").disableSelection(); 
}); 

vous pouvez changer la classe ui-état-fort à tout ce que vous voulez le style, vous pouvez le rendre invisible en utilisant la visibilité css-propriété et le mettre à caché

i fait l'exemple de base dans jsbin.com afin que vous puissiez voir à quoi cela ressemble

EDIT: example avec l'effet popping enlevé lorsque vous commencez le tri

+0

C'est un bon moyen d'y aller! Une seule chose.Lorsque vous le cachez, tous les éléments "en-dessous" de l'espace réservé vont sauter jusqu'à l'emplacement de l'espace réservé, puis ils commenceront à glisser vers le bas. Y a-t-il un moyen de les "verrouiller"? Parce qu'il semble très amusant si vous faites glisser le 5ème sur le 4ème élément dans votre exemple ... – Eric

+0

Bien sûr, j'ai édité dans le code et ajouté un exemple – Ties

+0

Fonctionne très bien lorsque vous faites glisser, mais lorsque vous le déplacez, l'espace réservé disparaît simplement donnant un saut/apparence cassée. Y a-t-il un moyen de détecter le déplacement? –

0
  1. vous pouvez le contrôler avec les options événements les vérifier ...
  2. becareful avec la file d'attente parce que si vous. faites glisser un élément, puis faites glisser l'autre withouth la première finition qui peut paraître drôle.
  3. Je vous recommande de lire .stop(), file d'attente de JQ, et peut-être « annuler bulle »
+0

Ah ok, c'est peut-être «mieux» d'utiliser les événements. Mais que voulez-vous dire par «contrôler»? Les objets sont statiques, par d'autres mots, ils ne peuvent pas être déplacés sur la page dynamique, sauf si vous modifiez la propriété à fixe/absolue, et qui crée beaucoup de problèmes .. – Eric

+0

je veux dire que vous pouvez utiliser 'start: function() { ...} 'pour créer un élément fantôme puis utilisez' glisser: function() {...} 'pour déplacer le fantôme enfin utiliser' arrêt: function() {...} 'pour détruire le fantôme puis faites glisser l'original à la position finale. ou quelque chose comme ça. – Val