html在线拖拽环绕,html界面元素拖拽实现[超简单]

就是一个十分简单的小功能,将一个html界面元素从一个地方拖到另一个地方(复制或移动)

html部分,省略部分非关键代码

A股

拖拽js部分, 即监听部分

$('#ma').bind('dragstart', function (event) {

const ev = event.originalEvent

// 存储拖拽元素的id

ev.dataTransfer.setData('targetId', ev.target.id)

})

// 注意jquery和js的写法略有不同

$('#box').bind('drop', function (event) {

// 禁止冒泡

event.stopPropagation()

const ev = event.originalEvent

// 获取被拖拽元素的id

const id = ev.dataTransfer.getData('targetId')

// 根据id获取该元素或clone该元素

const node = $('#${id}').clone(true) // clone方法相关参数参见附图

// const node = document.getElementById(id).cloneNode(true)

// node.id = ...

node.attr('id', 'newid')

ev.target.appendChild(node)

.....

})

clone方法附图

4910330968818078234.jpg

界面效果

6598074720346234339.jpg

酱酱,完啦!撒花,撒花!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在HTML实现元素拖拽,可以使用HTML5中提供的拖放API。以下是一个简单的示例: 首先,在HTML中创建一个可以拖动的元素,例如一个 div 元素: ```html <div id="dragElement" draggable="true">拖动我</div> ``` 然后,在JavaScript中为该元素添加拖放事件的监听器: ```javascript var dragElement = document.getElementById("dragElement"); // 拖动开始时触发 dragElement.addEventListener("dragstart", function(event) { // 存储被拖动元素的ID event.dataTransfer.setData("text/plain", event.target.id); }); // 拖动结束时触发 dragElement.addEventListener("dragend", function(event) { // 可以在这里添加拖动结束后的操作 }); ``` 接下来,在另一个可放置元素中添加拖放事件的监听器: ```javascript var dropZone = document.getElementById("dropZone"); // 当拖动元素进入可放置区域时触发 dropZone.addEventListener("dragenter", function(event) { event.preventDefault(); // 防止默认行为 dropZone.classList.add("dragover"); // 添加样式 }); // 当拖动元素在可放置区域中移动时触发 dropZone.addEventListener("dragover", function(event) { event.preventDefault(); // 防止默认行为 }); // 当拖动元素离开可放置区域时触发 dropZone.addEventListener("dragleave", function(event) { dropZone.classList.remove("dragover"); // 移除样式 }); // 当拖动元素在可放置区域中释放时触发 dropZone.addEventListener("drop", function(event) { event.preventDefault(); // 防止默认行为 dropZone.classList.remove("dragover"); // 移除样式 // 获取被拖动元素的ID var dragElementId = event.dataTransfer.getData("text/plain"); // 将被拖动元素添加到可放置区域中 var dragElement = document.getElementById(dragElementId); dropZone.appendChild(dragElement); }); ``` 在上面的代码中,dropZone 是一个可放置元素,可以将被拖动的元素添加到其中。在拖动开始时,我们使用 dataTransfer.setData() 方法将被拖动元素的 ID 存储在 dataTransfer 对象中。在拖放结束时,我们可以通过 dataTransfer.getData() 方法获取被拖动元素的 ID。 注意,为了使元素能够被拖动,需要设置 draggable 属性为 true。同时,在拖动事件的监听器中需要调用 event.preventDefault() 方法,防止浏览器默认行为的发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值