HTML5自带的5原生拖拽怎么实现,应用要点是什么
Admin 2022-06-27 群英技术资讯 1380 次浏览
这篇文章给大家分享的是“HTML5自带的5原生拖拽怎么实现,应用要点是什么”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。公司项目需求,要实现任务卡片在不同任务列表之间进行拖拽实现任务类别的更改。于是找了一下相关文章,稍微学习了一下。实现效果如下图。
拖拽实现

主要用到的是H5自带的拖拽效果。其实项目前端部分是使用React编写的,也是在使用H5实现了之后才了解到Dan Abramov大佬有个React-DnD组件对原生拖拽方法进行了封装。稍微学习了一下,很强。后续有使用到再写篇文章进行分享。
相关事件定义与用法
涉及一个属性六个事件。事件均为H5原生事件。
属性
事件
基础代码实现
拖拽元素相关事件实现代码如下。
function handleOndragstart() {
/*
该事件为拖拽元素被拖拽时调用。一般用于获取该拖拽元素的唯一标识,如id等。以方便后续数据更新时进行元素定位
*/
}
function handleOndragend() {
/*
该事件在拖拽元素被放置时调用。一般用于重置变量操作
*/
}
function handleOndrag() {
/*
该事件凭个人需求进行功能实现
*/
}
拖拽元素H5代码如下
<div
draggable="true"
ondragstart="handleOndragstart()"
ondrag="handleOndarg()"
ondragend="handleOndragend()"
>
该元素为拖拽元素
</div>
放置元素相关事件实现代码如下
/*
默认情况下,数据/元素不能放置到其他元素中。 如果要实现该功能,我们需要防止元素的默认处理方法。我们可以通过调用 event.preventDefault() 方法来实现 ondragover 事件。
*/
function handleOndragover(event) {
event.preventDefault();
/*
在这里进行你的函数处理
*/
}
function handleOndragenter(event) {
event.preventDefault();
/*
在这里进行你的函数处理
*/
}
function handleOndragleave(event) {
event.preventDefault();
/*
在这里进行你的函数处理
*/
}
function handleOndrop(event) {
event.preventDefault(); // 清除默认事件。drop 事件的默认行为是以链接形式打开
/*
一般在该事件中,也就是拖拽元素被放下的时候与后端进行交互进行数据更新
*/
}
放置元素H5代码如下
<div
ondragenter="handleOndragenter(event)"
ondragover="handleOndragover(event)"
ondragleave="handleOndragleave(event)"
ondrop=“handleOndrop(event)
>
该元素为放置元素
</div>
实例
以下代码可实现在两个div之间进行子元素的拖拽
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>拖拽实现</title>
<style type="text/css">
.parent {
display: flex;
width: 450px;
justify-content: space-around;
}
.container {
height: 300px;
width: 200px;
background-color: rgba(255, 255, 0, 0.3);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.box {
width: 100px;
height: 50px;
background-color: rgba(255, 255, 255, 1);
}
</style>
<script type="text/javascript">
function handleOndragstart(event) {
// 设置被拖动的数据,可简单理解为设置Box的值为被拖动元素的id。此处为"Box"
event.dataTransfer.setData("Box", event.target.id);
}
function handleOndragover(event) {
event.preventDefault();
}
function handleOndrop(event) {
// 拖拽元素被放下时调用
event.preventDefault();
var data = event.dataTransfer.getData("Box");
// 将拖拽元素追加到改放置元素中
event.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<div class="parent">
<div
class="container"
ondragover="handleOndragover(event)"
ondrop="handleOndrop(event)"
>
<div
class="box"
draggable="true"
id="Box"
ondragstart="handleOndragstart(event)"
></div>
</div>
<div
class="container"
ondragover="handleOndragover(event)"
ondrop="handleOndrop(event)"
></div>
</div>
</body>
</html>
最后
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
css让滚动轴看不见方法:1、利用“::-webkit-scrollbar”选择器选中滚动轴对象,2、利用display属性将滚动轴样式设置为不可见即可,语法为“::-webkit-scrollbar{display:none;}”。
当我们要使用css对HTML页面中的元素实现一对一,一对多或者多对一的控制,那么就需要使用到css选择器。而css组合选择器就是组合去使用基础选择器。css组合选择器对很多新手来说都是比较难懂的,这篇文章就给大家介绍一下css组合选择器怎么用,希望对大家学习有帮助。
css中,可利用filter属性和brightness()函数来让图片变暗,filter属性用于设置图片元素的可视效果,配合brightness()使用可调整图片的亮度,语法为“图片元素{filter:brightness(亮度值);}”。
项目过程中,开始使用了js的requestAnimationFrame方法实现进度条,但是在数据超级多的时候非常影响性能,如此改用css去实现,优化。 先贴代码: <!DOCTYPE html> <html lang=
在使用CSS时,很多朋友都有遇到过margin的重叠问题,也就会外边距重叠的问题。对此本文就给大家来详细的讲讲CSS中外边距重叠的情况,意义以及避免的方法,感兴趣的朋友就继续往下看吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008