Code前端首页关于Code前端联系我们

HTML5新功能概述:拖放(Drag and Drop)

terry 2年前 (2023-09-27) 阅读数 70 #数据结构与算法

拖放是HTML5提供的新功能。该函数添加了拖动事件的API并定义了可拖动的属性。例如,h5之前实现的拖放功能实际上是一种模拟方法。当鼠标onmousedown时,它会获取一些当前信息,然后不断更新推送值,当onmousemovelefttop值​​拖动对象,最后在onmouseup期间给推送对象完全赋值,释放后执行一组程序操作。现在h5已经出来了,不需要模拟了,因为它已经有了标准的事件API。我们看下面的例子:`

<style type="text/css">
.draggable{width: 120px; height: 120px;text-align: center; line-height: 120px; background-color: #8FBC8F; color: white; border: 5px solid yellowgreen; position: absolute; top: 0;left: 0;}
</style>

<div id="draggable" class="draggable" draggable="true">
		draggable
</div>

        var dragEl = document.getElementById('draggable');
        var l = null, t = null;
		
		dragEl.ondragstart = function (e) { // 准备推拽时
			l = e.clientX - this.offsetLeft, t = e.clientY - this.offsetTop;			
		}

		dragEl.ondrag = function (e) {  // 拖拽进行时
			var x = e.clientX, y = e.clientY;				
			this.style.left = x - l + 'px';
			this.style.top = y - t + 'px';
			console.log(x, y, l , t)
		}
		
		dragEl.ondragend = function (e) {   // 拖拽结束时
			var x = e.clientX, y = e.clientY;			
			this.style.left = x - l + 'px';
			this.style.top = y - t + 'px';
		}
复制代码

`

注意:可拖动对象必须将属性draggable设置为true,其他开发思路其实是一样的之前没有太大的区别,只是增加了更多的监控事件,想要了解更多拖放功能的同学可以查看拖放API。

作者:IT Baron
来源:掘金

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门