资讯专栏INFORMATION COLUMN

开源自己写的一个拖拽库,兼容到IE8

20171112 / 3346人阅读

摘要:打造跨平台的轻量级原生拖拽库自己写的一个拖拽库,基于原生实现,无任何依赖,同时还做了的兼容,在的情况下回退到实现。

github地址:https://github.com/qiangzi772...

目前这个库的兼容做到了兼容IE8,所以如果需要兼容IE8的朋友不妨试试。库里面写了很多的注释,对于想看源码的同学是一个很好的选择。如果觉得不错可以到github上点个star,谢谢各位了。
库的思路部分参考draggabilly的实现,但是因为draggabilly也依赖了几个小的库,导致源码有点臃肿,作者也没去优化,所以我就有个这个想法,写一个新的拖拽库,兼容到IE8。

Draggable

打造跨平台的轻量级原生拖拽库

Summary

自己写的一个拖拽库,基于原生JS实现,无任何依赖,同时还做了IE8的兼容,在IE8的情况下transform回退到position实现。拖拽的动画通过绑定在render函数上的requestAnimationFrame实现而不是使用mousemove回调。另外库里面还写了很多的注释,方便对源码的解读与交流。如果你觉得这个库写的不错或者有值得学习的经验不妨点下右上角的star,谢谢各位。

Install

直接从src文件夹中引入即可

Usage

</>复制代码

可以直接传入选择器

</>复制代码

  1. new Draggable("#app");

或者传入DOM节点

</>复制代码

  1. var elem=document.querySelector("#app");
  2. new Draggable(elem);

如果需要为多个元素添加拖拽,请循环遍历

</>复制代码

  1. var elem=document.querySelectorAll(".app");
  2. for(var i=0,len=elem.length;i
  3. API
  4. API一览
  5. </>复制代码

    1. new Draggable("#app",{
    2. parentMove:"#container",
    3. backToPosition:false,
    4. axis:"x",
    5. grid:{x:40},
    6. addClassName:"is-dragging",
    7. cursorCancel:false,
    8. });
  6. backToPosition
  7. 默认的拖拽动画是通过transform属性实现的,所以如果想使用position属性实现拖拽动画可以使用该参数

  8. </>复制代码

    1. new Draggable("#app",{
    2. backToPosition:true
    3. });
  9. 在IE8下会自动使用position实现拖拽

  10. parentMove
  11. 通过设置parentMove可以设置移动的父元素,如

  12. </>复制代码

    1. new Draggable("#app",{
    2. parentMove:"#container"
    3. });
  13. 表明当点击app元素时,app元素不会被拖拽,拖拽移动的是整个的container元素,这个API在需要定义顶部拖拽条的时候很有用

  14. axis
  15. 设置该参数表明只允许某个方向可拖拽

  16. </>复制代码

    1. new Draggable("#app",{
    2. axis:"x"
    3. });
  17. grid
  18. 设置拖拽的时候移动的单位

  19. </>复制代码

    1. new Draggable("#app",{
    2. grid:{x:40,y:40}
    3. });
  20. addClassName
  21. 为拖拽的过程添加className,方便增加拖拽样式

  22. </>复制代码

    1. new Draggable("#app",{
    2. addClassName:"is-dragging"
    3. });
  23. cursor
  24. 在初始化的时候默认为可拖拽的元素添加cursor:move属性,如果需要取消可以

  25. </>复制代码

    1. new Draggable("#app",{
    2. cursorCancel:true
    3. });
  26. 后期版本迭代
  27. 增加AMD规范。

  28. 增加事件绑定接口。

  29. 添加完善的错误输出,方便调试。

  30. 加上zIndex接口,让移动元素总在最顶层。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/50776.html

相关文章

  • 开源自己写的一个拽库兼容IE8

    摘要:打造跨平台的轻量级原生拖拽库自己写的一个拖拽库,基于原生实现,无任何依赖,同时还做了的兼容,在的情况下回退到实现。 github地址:https://github.com/qiangzi772... 目前这个库的兼容做到了兼容IE8,所以如果需要兼容IE8的朋友不妨试试。库里面写了很多的注释,对于想看源码的同学是一个很好的选择。如果觉得不错可以到github上点个star,谢谢各位了。...

    fxp 评论0 收藏0
  • 开源自己写的图片转Ascii码图工具

    摘要:地址如果觉得不错可以给个或者提出你的建议,基于的图片转示意图。瓶颈目前项目的瓶颈存在于这个插件,把图片转成码在浏览器中输出是十分快速的,但是后期将输出的码转换成图片时,使用了插件,这个插件在转换图片的过程中十分缓慢,导致最后的输出缓慢。 GitHub地址:https://github.com/qiangzi772... 如果觉得不错可以给个star或者提出你的建议 img2Ascii...

    Yangyang 评论0 收藏0
  • 开源自己写的图片转Ascii码图工具

    摘要:地址如果觉得不错可以给个或者提出你的建议,基于的图片转示意图。瓶颈目前项目的瓶颈存在于这个插件,把图片转成码在浏览器中输出是十分快速的,但是后期将输出的码转换成图片时,使用了插件,这个插件在转换图片的过程中十分缓慢,导致最后的输出缓慢。 GitHub地址:https://github.com/qiangzi772... 如果觉得不错可以给个star或者提出你的建议 img2Ascii...

    宠来也 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<