zoukankan      html  css  js  c++  java
  • 关于页面模块拖动的几个细节

    Google首页的模块拖动。http://www.google.com.hk/
    QWrap的模块拖动。http://dev.qwrap.com/resource/js/wagang/drag/_examples/LayoutDrag.html

    以上两个页面都是模块拖动。分析一下它们的几个细节差别。

    1.拖动的是什么:“拖实体,用代理定位(google)” VS “拖代理,用实体定位(qwrap)”
    ----google的做法是:鼠标拖动的是实体,而占位的是代理。
    ====qwrap的做法是:鼠标拖动的是代理,而占位的是实体。
    ----拖动实体的好处是:暂时没想明白。。。
    ====拖动代理的好处是:实现简单、效率好、可以拖动任意实体,例如表格行,甚至表格列。
    ====另外,觉得拖代理还有一个好处,可以很自然的添加一些平滑效果。例如示例里的动画。
    我们可以看一下windows xp拖动窗体的效果,默认拖动的是代理,与QWrap的方式一致。好像有的操作系统,也可以设置成拖动实体。


    2. 调整位置的判断依据:“临时方框中心(google)” VS “鼠标点(qwrap)”
    ----google的做法:看临时方框的中心位置来决定新位置。
    ====qwrap的做法:以鼠标点与鼠标移动方向来决定新位置。
    ----如果拖动的是小块,参考位置是大块,google的拖动范成本大(鼠标要移到大块当中才能换位置),而QWrap的拖动成本小(鼠标一碰触到大块,就换位置)。
    ====如果拖动的是大块,参考位置是小块,google的拖动范成本小。
    我们可以看一下与windows下的“缩略图”状态下的文件内的拖动策略,多了个定位卡,另外,是以鼠标点来作定位依据。与qwrap的方式一致。

    其实,这些都是事后比较的。
    当时做的时候,纯粹以开发者的出发点来决定:用拖代理、用鼠标定位的话,代码简单思路清晰。
    后来发现,原来竟然与windows的风格不谋而合了。。。。

    更多qwrap组件:参见:
    http://dev.qwrap.com/resource/js/wagang/_index.html
  • 相关阅读:
    Unity3D脚本修改默认编码界面
    Winform异步初始化UserControl的问题
    Windows API实现移动窗体
    BackgroundWorder控件
    Winform复杂界面异步加载
    TabControl设置选项卡的大小
    VS2010尝试运行项目时出错,无法启动程序
    winform开发-CheckedListBox控件
    tomcat配置https访问
    用户svn密码自定义
  • 原文地址:https://www.cnblogs.com/jkisjk/p/drag_google_qwrap_diff.html
Copyright © 2011-2022 走看看