Giter VIP home page Giter VIP logo

dnd's People

Contributors

afc163 avatar bitdeli-chef avatar lianqin7 avatar lifesinger avatar lizzie avatar shelter avatar sorrycc avatar ustccjw avatar zhangyuheng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dnd's Issues

无法结合css3效果

比如一个dialog使用dnd实现拖动,由于dnd是通过复制一份源节点的方式实现拖动,假如给dialog的show加一个css3d效果,那每次拖动的时候也会触发这个效果,拖动几乎不可用,另外不加css3d的情况下第一次拖动失败概率不低,不知道跟dnd通过复制实现拖动的方式有无关系

drag元素疑问

<div class="dialog">
    <div class="head"></div>
    <div class="conntent"></div>
</div>

像这种,如果是只想head元素上可以拖动整个dialog。这个应该怎么实现。

<div class="dialog" data-dnd=true>
    <div class="head" data-dnd=true></div>
    <div class="conntent" data-dnd=false></div>
</div>

试过这种不行。还有看源码说代理元素proxy是处理完移除代理元素

组件code review - 远尘

组件名: dnd
组件维护人: 叁儿
CR人: 远尘

评分:

符合度

  • 目录组织: 5
  • package.json: 5
  • README.md 和 docs/: 5
  • HISTORY.md: 5
  • .gitignore: 5
  • examples: 5
  • 正确继承: 5
  • 正确使用别名: 5
  • 测试用例: 2 spm totoro Failed on 3 of 9 browsers,主要是IE兼容性问题
  • 测试覆盖率: 5
  • 正确部署: 4 没publish,没tag
  • 格式: 4 总体不错,有一处注释拼写错误varibale->variable(dnd.js:9)

优秀度

  • 易读性: 2 命名有点晕
  • API设计: 2 containment命名可以改成container(dnd.js:30), api和变量命名不明确
  • 排版: 5 挺不错的
  • 注释: 2 有些注释是多余的,比如constructor function(dnd.js:22), 有些注释不太直观比如关闭页面Dnd功能,解绑鼠标,esc事件(dnd.js:83)
  • 文档: 3 README里缺少实例的代码片段
  • 可扩展性: 2 没有考虑可能的扩展,比如drop触发之后的自定义回调,可以预留为 executeDrop(callback) {...}
  • 测试用例: 4 如果能够把用例再拆分细化更好了,比如测试边界和方向约束就可以拆成两个用例
  • 准确性: 5 对Base理解很不错,使用准确

总分: 80

tags 1.0.0

基本按照review和大家的建议进行修改

主要fix如下:

  1. 实例放在全局的一个管理对象上,data-api 上存放实例的 id
  2. containment 默认改为 document
  3. open, close 方法 放到类静态方法中
  4. 从自身开始向上追朔,查询最近的具有dnd功能的元素触发拖放
  5. proxy作为源节点element的兄弟元素插入,解决了父元素对样式影响
  6. 事件绑定时,事件名称用空格分隔
  7. css({}) 代替 css(propertie, value)
  8. 移除了所有配置属性的合法性检查,只保留对源节点element的合法性检查

还有几个问题:

  1. revert 可增加到上一次定位的位置
    这个要不要实现?如果实现,怎么实现比较合理的,怎么区分开上一次位置和初始位置,增加一个属性吗
  2. 关于变量命名,吐槽者很多,大家有什么好的建议可以提提

dnd的分类讨论

个人觉得放在 工具 会比 UI组件 更合适

毕竟 Dnd(element, config) 的接口设计 和 整个 arale widget 体系的差异 很大

要不要合法性检查?

源节点,边界元素,代理元素,目标元素(集合)这些元素之间的合法性要不要检查?若放在setter上处理,那么单独一个属性合法性检查很简单。但是这些相互依赖的合法性不好检查,尤其是初始化时元素设置值顺序不定,所以想去掉这部门相互之间的合法性检查

若源节点属于proxy,拖动失效

new Dnd('#b', { proxy: '#a' });

b属于a子节点,

直接挂掉;

一个变通的方法,设置new Dnd('#a');然后在a节点除了b节点以外的所有子节点上设置data-dnd=false属性值,目的达到了,实现方法好2,

组件设计讨论

叁儿和欧阳靖主导,先把 README 搞好,其他人可以提提建议。

drag5 drag2 drag6 drag3 都是什么?

把html里的和js里的对应起来吧?
比如

<div id="drag5" class="drag" data-dnd=true
     data-config='{"drop": "#drop3", "zIndex": 99}'>ss</div>
<br/>
<div id="drop3" class="container">nihao</div>

dnd = new Dnd('#drag5', {drop: '#drop3', proxy: proxy, visible: true,
            revert: true}) ;

现在例子里面 貌似ID不对应

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.