Je travaille actuellement sur la réorganisation des éléments d'une liste. Cependant, la partie délicate est que je dois pouvoir réorganiser jusqu'à 100 articles. J'ai quelques solutions en tête mais le design se cassera une fois qu'il abordera probablement plus de 20 éléments. Cela conduirait à une très mauvaise expérience pour les utilisateurs. Je serais ravi d'avoir vos pensées et vos idées sur la façon de permettre la réorganisation d'une longue liste d'articles.
Quelques solutions auxquelles j'ai pensé:
Option 1: faites glisser et déposez pour réorganiser les éléments
Comme vous pouvez le voir, il serait difficile de faire glisser les éléments jusqu'au 100e. Le défilement serait également une douleur. Ce serait formidable si vous pouviez partager vos pensées pour de meilleures façons d'utiliser le glisser-déposer.
Option 2: Flèche vers le haut et le bas pour réorganiser les articles
La réorganisation fonctionne ici lorsque vous cliquez sur la flèche de haut en bas. Le problème ici est cependant lorsque vous réorganisez des articles trop éloignés, comme si vous souhaitez déplacer l'article 98 à l'article 2.
La solution rapide pour résoudre ce problème est la pagination où nous n'affichons que 10 éléments par page à la fois. La réorganisation se produit cependant à l'intérieur de cela. Le problème se pose donc lorsque vous réorganisez des éléments à partir d'autres pages.
Option 3: Utiliser la liste déroulante pour sélectionner la position de l'élément
Serait très heureux d'entendre vos solutions. Merci!
Mise à jour: je voudrais ajouter un peu de contexte sur le cas d'utilisation pour réorganiser cette longue liste d'éléments car certains pourraient se demander à quoi cela sert. Ceci est utilisé pour un questionnaire qui a une longue liste de questions. Le glisser-déposer n'est peut-être pas le mieux adapté à la personnalité des utilisateurs, j'explore donc quelques options et alternatives. Merci à tous ceux qui ont partagé leurs solutions et suggestions.
Avant de continuer à lire, vous voudrez peut-être expliquer un peu plus (dans votre question) le cas d'utilisation ... Je serais très intéressé d'obtenir plus d'informations sur la raison pour laquelle quelqu'un devrait être chargé de trier manuellement 100 entrées.
Si j'avais la nécessité de concevoir une page où l'utilisateur peut trier manuellement 100 éléments, je reviendrais en arrière et remettrais en question l'exigence. Je veux dire, quelle charge placez-vous sur un utilisateur qui pose ces questions: "L'article A est-il vraiment au rang 94, ou est-ce au rang 95?" Peut-être que vous pouvez utiliser le tri automatique basé sur un attribut, peut-être que la véritable exigence est de choisir les cinq meilleurs comme favoris, ...
Pour les moins de 5% de chances que l'exigence soit vraiment de trier manuellement 100 articles,
J'ai (malheureusement) dû gérer le fait de permettre aux utilisateurs de réorganiser les champs d'un formulaire ... certains de ces formulaires sont ridiculement longs. Dans ce scénario, je devais optimiser pour déplacer occasionnellement un seul champ ou un groupe de champs consécutifs vers un nouvel emplacement, sans réorganiser la liste entière.
Il y a quelques approches qui ont aidé:
Netflix a beaucoup d'expérience avec cela, car les utilisateurs qui s'abonnent toujours à leur service DVD doivent pouvoir réorganiser leurs files d'attente. Ils ont changé leur approche à plusieurs reprises, ce qui me dit que le problème est en fait difficile. Quelques points sur leur approche actuelle:
Ils proposent donc de multiples approches. Si vous pensez que les grands mouvements dans les longues listes seront courants, je ne vois vraiment pas de meilleure approche que de laisser l'utilisateur saisir un index de destination pour la ligne en cours de déplacement.
Trier de longues listes n'est pas si inhabituel. Le cas le plus courant que je rencontre est celui des listes de lecture de musique.
Ma recommandation est la suivante: tout ce qui précède.
Lorsque vous avez beaucoup d'articles à trier, vous devez fournir beaucoup d'assistance au moyen de l'outillage.
Pour les listes courtes ou les éléments qui doivent être réorganisés à proximité les uns des autres, vous devez fournir un support par glisser-déposer. Gardez à l'esprit que cela sera inaccessible à certains utilisateurs, vous devrez donc également fournir des boutons de tri accessibles via les commandes du clavier.
Vous aurez besoin des boutons "trier" et "trier", mais il est également utile d'avoir des boutons "envoyer en haut" et "envoyer en bas".
Ensuite, après tout cela, il est également utile de pouvoir déplacer un élément spécifique vers une position spécifique.
Cela se fait généralement en fournissant un champ numérique entre les boutons "trier vers le haut" et "trier vers le bas":
---- /\
---- Item Name [##]
---- \/
Quelques autres fonctionnalités de tri qui peuvent être utiles dans des circonstances spécifiques:
Ctrl+Click
)Comme le dit virtualnobi dans son excellente réponse, vous devez décider si l'utilisateur a vraiment besoin de trier manuellement la liste entière.
Cependant, s'ils le font, je voudrais signaler l'exemple utilisé sur le Premier League Fantasy Draft website . Il s'agit d'un jeu de football fantastique, où les utilisateurs peuvent enregistrer des joueurs pour référence ultérieure et peuvent trier manuellement leur commande. Points importants à considérer:
La raison pour laquelle je pointe vers le premier League Fantasy Draft est parce qu'ils vous permettent de réorganiser, pendant que vous filtrez, et je pense que c'est une excellente mise en œuvre.
Par exemple:
Liste initiale:
Filtré pour afficher uniquement "MID" (Milieux de terrain):
À ce stade, l'ordre de la liste complète est toujours affiché (Priorité), mais l'utilisateur peut trier cette liste filtrée et avoir un impact sur la liste globale.
Par exemple, l'utilisateur peut déplacer Snodgrass de la 4e de cette liste (7e au total) au 2e de cette liste, ce qui le place au 4e rang, ce qui est une moyenne entre les 2 joueurs entre lesquels il vient de les placer.
C'est certainement une exigence rigoureuse. En supposant que quelqu'un doit trier manuellement 100 éléments, je préfère en faire un jeu pour l'utilisateur. Avez-vous vu ce jouet puzzle pour les enfants pour organiser les numéros dans l'ordre croissant. Ma suggestion est d'en faire quelque chose comme ça.
télécharger la source bmml - Wireframes créés avec Balsamiq Mockups
Cette approche a l'avantage que l'utilisateur obtiendra une validation, combien il a terminé.
Quelque chose qui pourrait bien fonctionner dans cette situation (amener les gens à produire un classement d'un grand nombre d'articles) est un instrument de style wars witten - où tout ce que l'utilisateur a à faire est de voir des paires d'articles et choisissez lequel des deux obtient le rang le plus élevé. Il existe du code pour implémenter cela. Il choisirait les paires à montrer à l'utilisateur et, après avoir évalué un nombre suffisant de paires, le classement complet de 100 éléments peut être calculé en fonction de leurs réponses. C'est amusant et facile car l'utilisateur n'a qu'à comparer deux éléments à la fois.
D'accord, je pense que mon approche n'a pas été couverte par les autres:
"Donc, c'est utilisé pour un questionnaire qui a une longue liste de questions." Donc, vous voulez que l'utilisateur évalue les réponses qu'il pense être les plus importantes. Quelque chose de similaire auquel je peux penser est l'aide au vote largement utilisée lors de chaque élection dans mon pays (Pays-Bas). Dans ce document, vous répondez aux questions "l'énergie nucléaire est meilleure que l'énergie éolienne" "La défense devrait obtenir plus d'argent que les soins de santé", puis vous attribuez laquelle de celles-ci vous semble plus importante. Les implémentations diffèrent.
Donc, si le cas d'utilisation est quelque chose comme ça, l'endroit exact (sur 100) d'un élément n'a pas beaucoup d'importance, et il est facile de comparer deux questions par importance. Alors fais ça. Continuez à poser des questions "qui se classerait plus haut, question XA ou question XB?" , qui sont facilement répondables, jusqu'à ce que vous puissiez établir un ordre suffisant pour vos articles. Vous n'avez probablement pas besoin de connaître le classement exact de chaque article, vous pouvez donc vous arrêter après avoir compris ce que sont les 25 premiers, puis ne poser que des questions pour les trier. Ou vous pouvez faire arrêter l'utilisateur quand il le souhaite et travailler avec des données incomplètes. Mieux que pas de données.
Vous devez poser au moins 100 questions avant d'avoir une photo d'une commande complète, mais ce sont des questions simples . Sinon, vous devrez également répondre à 100 questions, sauf sous la forme "Quel grade pensez-vous que la question XA devrait avoir? XB? XC?". Ce sont difficiles , car vous devez avoir une vue d'ensemble de l'importance de cet article par rapport aux 99 autres.
Si l'ordre exact est toujours d'une grande importance, vous pouvez au moins faire une liste à peu près triée à partir de ces réponses, (comme comparer 50 paires, puis comparer tous les gagnants et perdre des paires, de sorte que vous connaissez les 25% supérieurs ( qui a "gagné" les deux matchs) et les 25% les plus bas (qui les ont perdus) après seulement 100 comparaisons). Montrez-le ensuite à l'utilisateur pour la touche finale. La plupart des objets n'auront pas besoin de bouger beaucoup.