美文网首页
简单实现拖拽页面元素

简单实现拖拽页面元素

作者: 孙二柯 | 来源:发表于2021-06-27 18:03 被阅读0次

api参照HTML Drag and Drop API

首先要给要拖拽的元素增加draggable属性,然后就可以注册以下事件了。

Event On Event Handler Fires when…
drag ondrag …a dragged item (element or text selection) is dragged.
dragend ondragend …a drag operation ends (such as releasing a mouse button or hitting the Esc key; see Finishing a Drag.)
dragenter ondragenter …a dragged item enters a valid drop target. (See Specifying Drop Targets.)
dragexit ondragexit …an element is no longer the drag operation's immediate selection target.
dragleave ondragleave …a dragged item leaves a valid drop target.
dragover ondragover …a dragged item is being dragged over a valid drop target, every few hundred milliseconds.
dragstart ondragstart …the user starts dragging an item. (See Starting a Drag Operation.)
drop ondrop …an item is dropped on a valid drop target. (See Performing a Drop.)

简单的demo如下:

<!--
 * @Author: sunxy
 * @Date: 2021-06-27 13:42:03
 * @LastEditors: sunxy
 * @LastEditTime: 2021-06-27 17:51:00
 * @Description:  拖拽功能
 * @FilePath: /feir/cli/src/draggable.html
-->

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .empty {
      width: 100px;
      height: 100px;
      border: 1px solid red;
    }
  </style>
</head>

<body>
  <div> 拖拽到下面的盒子</div>
  <div class="empty"></div>
  <img draggable="true" src="./images/img.png" />
</body>
<script>
  // drag event
  /**
   *  开始 dragstart   进入时 dragenter
   *  进行中 drag       进入后 dragover
   *  结束  dragend     离开 dragover   放置 drop
   */
  const empty = document.querySelector('div.empty')
  document.addEventListener('dragstart', e => {
    // 开始拖动的时候给添加红色边框
    e.target.style.border = '1px dashed red'
  }, false)
  document.addEventListener('dragend', e => {
    // 结束拖动的时候 取消边框
    e.target.style.border = 'none'
  }, false)

  empty.addEventListener('dragenter', e => {
    e.preventDefault()
    e.target.style.border = '1px dashed green'
    // 进入的时候 添加元素
    e.target.appendChild(document.querySelector('img'))
  }, false)
</script>

</html>

相关文章

  • HTML5拖拽drag

    通过拖拽实现页面元素的位置改变 实现拖拽效果 源元素 - 要拖拽的文件 目标元素 - 要拖拽到哪里去 目前实现拖拽...

  • 简单实现拖拽页面元素

    api参照HTML Drag and Drop API[https://developer.mozilla.org...

  • 拖拽API

    实现拖拽效果 目前实现拖拽效果 HTML5拖拽 源元素事件例子 目标元素事件 从本地拖放图片到页面中 实现拖拽

  • js实现拖拽

    js实现拖拽 实现方式 mousedown、mousemove和mouseup 拖着目标元素在页面任意位置如果要设...

  • HTML5实现拖拽

    实现拖拽效果源元素 - 要拖拽的文件目标元素 - 要拖拽到哪里去 目前实现拖拽效果使用原生DOM就能实现 - 最麻...

  • Vue小商城学习记录

    初期几天以后补 2018.6.1 用touch事件实现元素拖拽,拖拽元素不能加transition,否则拖拽结束才...

  • H5拖拽drag

    我们在学习拖拽时要注意源元素、目标元素。在拖拽的过程,通过设置源元素、目标元素的相应事件,才能实现拖拽操作。 源元...

  • 原生拖拽,拖放事件(drag and drop)

    拖拽,拖放事件可以通过拖拽实现数据传递,达到良好的交互效果,如:从操作系统拖拽文件实现文件选择,拖拽实现元素布局的...

  • js拖拽html元素工具类

    复制就能用的拖拽js方法 原生js实现拖拽元素方法 使用(注意拖拽目标元素需绝对定位 position: 'abs...

  • 拖拽-12.19

    1.源元素事件(要拖拽的文件) 2.目标元素事件(要拖拽到哪里去) HTML页面默认不允许拖放,称之为HTML页面...

网友评论

      本文标题:简单实现拖拽页面元素

      本文链接:https://www.haomeiwen.com/subject/hlvxultx.html