php拖拽原理,JS中拖拽元素实现的原理-2019年1月18日

本文介绍了如何使用HTML、CSS和JavaScript实现一个简单的拖拽功能,通过onmousedown、onmousemove和onmouseup事件处理,实现在页面上的小球跟随鼠标移动。实例代码详细展示了如何获取鼠标位置并更新小球的left和top属性。

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

实例

html>

拖拽

#ball {

width: 50px;

height: 50px;

background-color: lightpink;

border-radius: 50%;

box-shadow: 2px 2px 1px #888;

position:absolute;

}

// onmousedown: 选择, onmouseover: 移动, onmouseup:放下

var ball = document.getElementById('ball');

// 选中这个小球

// onmousedown

//找到小球的位置:

// 当前鼠标到小球边沿的距离相对是不变的,变得只是小球到左边与顶部的距离

// 这个不变的距离 ,是鼠标点击下去的一瞬间就确定了,就可以求出来了

// 根据当前鼠标到当前可视区的距离

// 求出鼠标当前位置

ball.onmousedown = function (event) {

var x = event.clientX - this.offsetLeft;

var y = event.clientY - this.offsetTop;

console.log(x, y);  // offsetLeft只读,返回数值

// 移太快,鼠标跑出小球了,怎么办, 应该把事件添加到整个文档就可以了,再快, 也不会跑出浏览器窗口吧

// ball.onmousemove = function (event) {

document.onmousemove = function (event) {

ball.style.left = event.clientX - x + 'px';

console.log(ball.style.left);  // 注意返回的是字符串

ball.style.top = event.clientY - y + 'px';

}

// ball.onmouseup = function () {

document.onmouseup = function () {

// ball.onmousemove = null;

document.onmousemove = null;

}

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值