zoukankan      html  css  js  c++  java
  • 【新特性速递】优化Shift/Ctrl行多选逻辑,和Windows的文件资源管理器保持一致!

    别告诉我你不知道

    别告诉我你不知道可以使用键盘的 Shift 和 Ctrl 来多选表格行,因为这个在 Windows 文件资源管理器中的常用操作,此时的画风是这样的:

    这个动图中进行了如下操作:

    1. 选中【董婷婷】

    2. 按下 Shift 键,点击【唐超】,此时会选中【董婷婷】和【唐超】之间的全部行

    3. 按下 Ctrl 键,点击【康颖颖】,此时会取消选中【康颖颖】

    4. 按下 Ctrl 键,点击【董国】,此时会选中【董国】

    在这个例子中,综合使用了 Shift 和 Ctrl 和进行表格行的选择,这样可以方便快捷的选取我们所需要的行。

    向Windows文件资源管理器看齐!

    不过,在进行 Shift 多选时,我们会把每次最后点击的行作为下一次多选的起始行,此时的效果是这样的:

    这幅动态的操作是这样的:

    1. 选中【刘国】

    2. 按下 Shift 键,点击【黄婷婷】,此时会选中【刘国】和【黄婷婷】之间的全部行

    3. 按下 Shift 键,点击【徐鹏】,此时会选中【黄婷婷】和【徐鹏】之间的全部行

    而这个逻辑和 Windows 文件资源管理器的实现不一致,来看下 Windows 下的选中逻辑:

    这里的操作是这样的:

    1. 选中【Block】

    2. 按下 Shift 键,点击【DataModel】,此时会选中【Block】和【DataModel】之间的全部行

    3. 按下 Shift 键,点击【Form】,此时会选中【Block】和【Form】之间的全部行

    经过一番思考,我们还是决定和 Windows 文件资源管理器保持一致,毕竟这是大家所熟知和最常用的功能。

    新版本(v5.6.0)的改进

    在新版本中,我们设定了如下三个规则:

    -规则一:最后选中的行作为下次Shift键多选的起始行。
    -规则二:使用Shift键多选时,如果起始行处于选中状态,在不改变起始行。
    -规则三:使用Ctrl键点选行时,不管行是被选中还是取消选中,本行都作为下次多选的起始行。

    看似有点绕口,不过都是为了向  Windows 文件资源管理器看齐,现在再来看看 Shift 多选的操作:

    这幅动态的操作是这样的:

    1. 选中【刘国】

    2. 按下 Shift 键,点击【黄婷婷】,此时会选中【刘国】和【黄婷婷】之间的全部行

    3. 按下 Shift 键,点击【徐鹏】,此时会选中【刘国】和【徐鹏】之间的全部行

    是不是更合情合理一点。

    至于上面的规则的第三点【使用Ctrl键点选行时,不管行是被选中还是取消选中,本行都作为下次多选的起始行】,这个的确有点奇怪,不过看了Windows下的动图你就明白了:

    这里的操作是这样的:

    1. 选中【Block】

    2. 按下 Shift 键,点击【DataModel】,此时会选中【Block】和【DataModel】之间的全部行

    3. 按下 Ctrl 键,点击【Config】,此时会取消选中【Config】

    4. 按下 Shift 键,点击【Form】,此时会选中【Config】和【Form】之间的全部行

    注意最后一个操作,在第3个步骤时,【Config】目录是取消选中的,而第4步操作,则会把【Config】作为起始行。

    好吧,我们也照葫芦画瓢,来看看 FineUIPro v5.6.0 中的实现:

    详细的操作步骤如下:

    1. 选中【刘国】

    2. 按下 Shift 键,点击【黄婷婷】,此时会选中【刘国】和【黄婷婷】之间的全部行

    3. 按下 Ctrl 键,点击【康颖颖】,此时会取消选中【康颖颖】

    4. 按下 Shift 键,点击【杨婷婷】,此时会选中【康颖颖】和【杨婷婷】之间的全部行

    希望你能喜欢本次的更新。

    加入知识星球下载FineUIPro/Mvc/Core的基础版

    不忘初心,砥砺前行!

  • 相关阅读:
    请求转发和重定向
    jvm调优(新生代、老年代调优)
    servlet(对servlet的理解、生命周期)
    http的get和post请求方式
    jvm垃圾回收器(串行、吞吐量优先、响应时间优先、G1)
    java后端学习路线总结
    jvm:java中的引用(强引用、软引用、虚引用、弱引用)
    jvm直接内存(分配与回收)
    ssm(增删改查、拦截器、过滤器)
    springmvc:文件的上传与下载
  • 原文地址:https://www.cnblogs.com/sanshi/p/11300462.html
Copyright © 2011-2022 走看看