📜  HTML | ondragover 事件属性(1)

📅  最后修改于: 2023-12-03 14:41:52.150000             🧑  作者: Mango

HTML | ondragover 事件属性

在 HTML 中,ondragover 事件属性允许您指定在元素上拖动对象时发生什么。

如何使用 ondragover 事件属性?

您可以使用 ondragover 事件属性在元素上指定有拖动操作时执行的 JavaScript 代码。例如,当您将拖动一个对象到一个目标元素上时,您可能需要更改元素的背景颜色来指示它可以接受该对象。

以下是一个例子:

<!DOCTYPE html>
<html>
<head>
	<title>ondragover 事件属性</title>
	<style>
	#dropzone {
		width: 300px;
		height: 200px;
		border: 2px dotted black;
		padding: 10px;
		margin: 10px;
	}
	
	#dropzone.dragover {
		background-color: lightgray;
	}
	</style>
</head>
<body>
	<div id="dropzone" ondragover="dragOver(event)" ondrop="drop(event)">
		将文件拖至此处
	</div>
	
	<script>
	function dragOver(event) {
		event.preventDefault();
		event.target.classList.add('dragover');
	}
	
	function drop(event) {
		event.preventDefault();
		event.target.classList.remove('dragover');
		var file = event.dataTransfer.files[0];
		console.log('您拖动的文件是:' + file.name);
	}
	</script>
</body>
</html>

在这个例子中,我们在一个 div 元素上设置了 ondragover 事件属性来指示当鼠标悬停在该元素上时,拖动对象可放置在该元素内。我们还使用了 ondrop 事件属性来指示当拖动对象在该元素内释放时要执行的 JavaScript 代码。

dragOver 函数中,我们使用 event.preventDefault() 方法来取消默认行为,以便在元素上放置拖动对象。我们还将 dragover 类添加到目标元素的类列表中,以更改其背景颜色。在 drop 函数中,我们取消了默认行为,并删除了 dragover 类,以便元素可以重新设置为其默认背景颜色。我们还使用 event.dataTransfer.files 属性来获取拖动文件的文件名。

常用的属性和事件
ondragover

此事件在可拖动元素悬停在接收元素上时触发。

语法:

ondragover="myFunction(event)"
ondrop

此事件在用户将鼠标按钮释放时,在目标元素上触发一个拖放操作。

语法:

ondrop="myFunction(event)"
event.preventDefault()

阻止某些元素的默认行为。

语法:

event.preventDefault()
总结

当您需要使用 HTML 拖放功能时,您可以使用 ondragover 事件属性来指示可拖动元素拖动到接收元素时的行为。通过取消默认事件,并添加/删除类,您可以指示接收元素可以放置拖动对象,并更改元素的外观以指示这一点。