HTML之鼠标拖拽事件

本文详细探讨了HTML中的鼠标拖拽事件,如何利用这些事件创建交互式的网页元素,实现对象的拖放操作,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

鼠标对操作对象实现拖拽:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title></title>

<style>

body{

margin: 0;

padding: 0;

}

div{

position: absolute;

top: 200px;/*div的y轴*/

left: 150px;/*div的x轴*/

width: 300px;

height: 200px;

background-color: gray;

}

div:hover{

cursor: move;

}

</style>



<script>



/*

* 分析:

* 获取鼠标实时移动的坐标;m_move_x,m_move_y

* 鼠标按下时的坐标;m_down_x,m_down_y

* div的坐标;dx,dy

* 鼠标按下时,鼠标与div的偏移量;md_x,md_y

* div的新坐标;ndx,ndy

*/



var isDown = false;//记录鼠标状态

var move_div ;//要操作的div对象

var m_move_x,m_move_y,m_down_x,m_down_y,dx,dy,md_x,md_y,ndx,ndy;



//鼠标按下

function down(){

move_div = document.getElementById("move_div");

isDown = true;



//获取鼠标按下时坐标

m_down_x = event.pageX;

m_down_y = event.pageY;



//获取div坐标

dx = move_div.offsetLeft;

dy = move_div.offsetTop;



//获取鼠标与div偏移量

md_x = m_down_x - dx;

md_y = m_down_y - dy;

}



//鼠标移动

function move(){

move_div = document.getElementById("move_div");



//实时更新div的坐标

dx = move_div.offsetLeft;

dy = move_div.offsetTop;



//获取鼠标移动实时坐标

m_move_x = event.pageX;

m_move_y = event.pageY;



//鼠标按下时移动才触发

if(isDown){



//获取新div坐标,鼠标实时坐标 - 鼠标与div的偏移量

ndx = m_move_x - md_x;

ndy = m_move_y - md_y;



//把新div坐标值赋给div对象

move_div.style.left = ndx+"px";

move_div.style.top = ndy+"px";



}



}



//鼠标释放

function up(){

isDown = false;

}





</script>





</head>

<body>

<div id="move_div" onmousedown="down()" onmouseup="up()" onmousemove="move()"></div>

</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值