我希望让我的用户对网格中的元素重新排序-而不是对列进行自动排序。他们选择哪个元素是第一个,哪个在另一个之后,依此类推。
我想到了,并看到了一些可能根据情况而定的解决方案:
我很想结合使用这两种技术,例如索引列+拖放,但是我害怕累积两者的弊端而不是同时拥有两者的优点。
已证明有效的重排序技术是什么?
Netflix在队列中结合了三种方法。您可以拖放,但也可以指定特定的行号,或单击以将其移到最顶部:
我对他们的方法感兴趣的地方在于,他们在每一行上都放置了“顶部”图标(绿色圆圈),而不是要求用户进行选择然后单击页面顶部的某个位置,大多数网络应用都会放置此类图标或按钮。
在您的情况下,我将使用拖放功能,但会在每行上放置一个齿轮图标:
这将允许执行以下操作:
用户可以拖放一或多个行
用户可以选择多行,然后单击齿轮图标以使菜单下拉并执行任意数量的操作,例如将选区移到顶部或底部,将选区上移或下移指定数量的行(在这种情况下,会出现一个小对话框),复制,剪切等。实际上没有限制。
在尝试弄清楚该怎么做之前,您需要问自己的第一件事是用户执行该操作的频率。
如果要经常使用它,我将尝试创建它,以便您使用拖放操作,并在用户达到一定门槛后自动滚动页面。
有一个很好的经验法则:如果用户需要经常执行某项操作,并且甚至可以通过引入某种特殊的交互方式来简化操作,则可以做到这一点。用户对学习曲线很满意,因为以后会受益。
如果它不经常使用,我会按向上/向下箭头键,可能不会退出,但很明显。
我将上/下箭头与拖放结合在一起。
不得不猜测一些数字,或者必须事先计算出来,这很麻烦。尽管可以并且应该在代码中处理冲突,例如,通过简单地增加等于或大于输入的数字的所有数字,但是,即使是出于对重复或重复的不确定性,大多数用户还是会尝试先计算出正确的数字。错误的号码将被处理。
上下箭头是在短距离内重新排序的更方便的方法。
对于更长的距离和多个项目的移动,可以添加拖放。为了确保拖放距离超过单个页面的可用性,还应该实现网格的自动滚动。这意味着在拖动操作期间,当您在网格的上边框或下边框的一定范围内拖动鼠标时,网格将自动滚动。 Windows Explorer正是这么做的。
为了进一步增强此功能,滚动速度可以开始缓慢,并且随着拖动继续在“滚动敏感”区域中而增加。但是要小心,还要设置最大滚动速度:自动滚动使我非常生气,因为自动滚动的速度和/或速度如此之快,以至于我总是滚动到需要的位置。
Drupal)CMS为此有一个相对好的解决方案,可以扩展到30至50个项目的列表。不知道它将如何扩展。
配置网站“块”就是一个示例-请参见下面的屏幕截图。
“拖放”方法比使用箭头将项目移动一个步骤要平滑得多。 [〜#〜] jira [〜#〜] 做到了,将事情放到正确的位置确实很费力。
这取决于您的用户使用系统的方式:
如果行号有意义(例如,队列中的位置),则可能要显示它并使之可编辑。
如果“首先做到这一点”是常见的操作,则可能需要引入“移至顶部”按钮(或移至底部)。
如果您的用户喜欢键盘快捷键加上上下快捷键,请确保选择/焦点在移动时跟随行,因此按向上快捷键3次实际上会将行向上移动3位。
您可以添加上/下按钮,我的用户不太喜欢(您的用户可能有所不同)
最后,Drag&Drop,这是我的用户最喜欢的对行进行重新排序的方式-在我的应用中,没有拖动柄,并且用户可以很好地进行拖放(您的用户可能有所不同)
而且,无论您做什么,都要确保对特定用户进行了测试,并查看他们的喜欢程度。