it-swarm.cn

在网格中,如何手动对行进行重新排序?

我希望让我的用户对网格中的元素重新排序-而不是对列进行自动排序。他们选择哪个元素是第一个,哪个在另一个之后,依此类推。

我想到了,并看到了一些可能根据情况而定的解决方案:

  • 拖放:性感,但不适用于滚动或分页的长网格。另一个缺点是它不可见,您甚至可能不知道此功能可用。最后,需要一些技巧。但是,可以一次移动一个以上的元素。
  • 向上/向下箭头:易于理解且易于使用,可进行小动作,但是当您必须将最后一个元素移至第一位时很无聊。同样,当您将元素移动几步时,每次移动后都必须抓住该箭头。一次仅可处理一个元素。
  • 索引列:用户输入一个数字,指示元素的位置。当用户知道所需的绝对位置时很有用。很难猜测如果输入一个已经存在的数字会发生什么。一次仅可处理一个元素。

我很想结合使用这两种技术,例如索引列+拖放,但是我害怕累积两者的弊端而不是同时拥有两者的优点。

已证明有效的重排序技术是什么?

5
Mart

Netflix在队列中结合了三种方法。您可以拖放,但也可以指定特定的行号,或单击以将其移到最顶部:

alt text

我对他们的方法感兴趣的地方在于,他们在每一行上都放置了“顶部”图标(绿色圆圈),而不是要求用户进行选择然后单击页面顶部的某个位置,大多数网络应用都会放置此类图标或按钮。

在您的情况下,我将使用拖放功能,但会在每行上放置一个齿轮图标:

alt text

这将允许执行以下操作:

  • 用户可以拖放一或多个行

  • 用户可以选择多行,然后单击齿轮图标以使菜单下拉并执行任意数量的操作,例如将选区移到顶部或底部,将选区上移或下移指定数量的行(在这种情况下,会出现一个小对话框),复制,剪切等。实际上没有限制。

7
Hisham

在尝试弄清楚该怎么做之前,您需要问自己的第一件事是用户执行该操作的频率。

如果要经常使用它,我将尝试创建它,以便您使用拖放操作,并在用户达到一定门槛后自动滚动页面。

有一个很好的经验法则:如果用户需要经常执行某项操作,并且甚至可以通过引入某种特殊的交互方式来简化操作,则可以做到这一点。用户对学习曲线很满意,因为以后会受益。

如果它不经常使用,我会按向上/向下箭头键,可能不会退出,但很明显。

3
ThomPete

我将上/下箭头与拖放结合在一起。

不得不猜测一些数字,或者必须事先计算出来,这很麻烦。尽管可以并且应该在代码中处理冲突,例如,通过简单地增加等于或大于输入的数字的所有数字,但是,即使是出于对重复或重复的不确定性,大多数用户还是会尝试先计算出正确的数字。错误的号码将被处理。

上下箭头是在短距离内重新排序的更方便的方法。

对于更长的距离和多个项目的移动,可以添加拖放。为了确保拖放距离超过单个页面的可用性,还应该实现网格的自动滚动。这意味着在拖动操作期间,当您在网格的上边框或下边框的一定范围内拖动鼠标时,网格将自动滚动。 Windows Explorer正是这么做的。

为了进一步增强此功能,滚动速度可以开始缓慢,并且随着拖动继续在“滚动敏感”区域中而增加。但是要小心,还要设置最大滚动速度:自动滚动使我非常生气,因为自动滚动的速度和/或速度如此之快,以至于我总是滚动到需要的位置。

0
Marjan Venema

Drupal)CMS为此有一个相对好的解决方案,可以扩展到30至50个项目的列表。不知道它将如何扩展。

配置网站“块”就是一个示例-请参见下面的屏幕截图。

  • 每个项目都有一个4向手柄,可以进行拖放操作。
    手柄提供视觉上的“负担”,可以拖动该项目。
  • 该列表分为几部分。
    将项目移至特定部分可以通过从为该项目显示的组合框中选择该项目来完成

alt text

“拖放”方法比使用箭头将项目移动一个步骤要平滑得多。 [〜#〜] jira [〜#〜] 做到了,将事情放到正确的位置确实很费力。

0
Bevan

这取决于您的用户使用系统的方式:

  • 如果行号有意义(例如,队列中的位置),则可能要显示它并使之可编辑。

  • 如果“首先做到这一点”是常见的操作,则可能需要引入“移至顶部”按钮(或移至底部)。

  • 如果您的用户喜欢键盘快捷键加上上下快捷键,请确保选择/焦点在移动时跟随行,因此按向上快捷键3次实际上会将行向上移动3位。

  • 您可以添加上/下按钮,我的用户不太喜欢(您的用户可能有所不同)

  • 最后,Drag&Drop,这是我的用户最喜欢的对行进行重新排序的方式-在我的应用中,没有拖动柄,并且用户可以很好地进行拖放(您的用户可能有所不同)

而且,无论您做什么,都要确保对特定用户进行了测试,并查看他们的喜欢程度。

0
Nir