四时宝库

程序员的知识宝库

详解javascript拖拽基础(js拖拽生成页面)

拖拽成为一项标准也是近几年的事,属于HTML5中的一部分,作为一种交互行为,拖拽是被广泛应用再界面软件中的,例如桌面应用,word、QQ软件都有拖拽行为。

在HTML5标准实施之前,拖拽也是被广泛使用的,web开发者将click、mouseover,mousemove组合起来实现拖拽逻辑,过程略显冗余和繁琐。

一言蔽之,HTML5的出现让拖拽开发变得简单

先来一张流程图

下图描绘了拖拽的流程.

要点概括总结

结合上图,我们梳理下知识点,做个拆分与解析。

一共有哪些事件

  • 拖: dragstart , drag , dragend
  • 放: dragenter , dragover , dragleave , drop

哪些实体可以被拖

draggable
wordContainerEle.onselectstart = event => false;

这意味着:

  • 元素 默认禁止拖拽 (貌似都是),需要手动设置draggable属性为true。
  • 文字默认都是能选中的,这个大家都习以为常了。

需要说明的是,一个元素被设置draggable之后,里面的文本就无法被选中了(chrome测试如此)。

关于放,有哪些限制?

  • dragenter :都可以。
  • dragover :都可以
  • dragleave :都可以
  • drop :只有在 dragover监听中阻止默认行为 ,才能触发drop

拖放会冒泡嘛?

答案是肯定的。假设一个父元素包含一个子元素,理所当然地,用户拖子元素也是间接的拖动父元素的过程。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接