分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

js拖拽分析

发布时间:2023-09-06 01:45责任编辑:彭小芳关键词:js

js拖拽分析

思路

1、三个鼠标事件,mousedown,mousemove,mouseup

2、可移动性absolute

3、边界限制

得到鼠标点击处和div边界的距离,然后得出top 和 left 的值

具体

mousedown

 ??div.onmousedown=function(event){ ????????var event=event||window.event ????????var diffX=event.clientX-div.offsetLeft ????????var diffY=event.clientY-div.offsetTop ??}

diffX/Y得出的是开始点击处和div边界的距离

mousemove

document.onmousemove=function(event){ ????????var event=event||window.event ????????var l=event.clientX-diffX ????????var t=event.clientY-diffY ????????if(t<0){ ?????????????t=0 ?????} ????????if(t>document.documentElement.clientHeight-div.offsetHeight){ ?????????????t=document.documentElement.clientHeight-div.offsetHeight ?????} ????????if(l>document.documentElement.clientWidth-div.offsetWidth){ ?????????????l=document.documentElement.clientWidth-div.offsetWidth ?????} ?????????if(l<0){ ?????????????l=0 ?????} ?????????div.style.left=l+‘px‘ ?????????div.style.top=t+‘px}

if后的语句主要是限制边界处而设置的

mouseup

document.onmouseup=function(){ ???????document.onmousemove=null ???????document.onmouseup=null}

主要是当鼠标放开时,取消move带来的结果。

当然,还有位置的absolute不要忘记

js拖拽分析

原文地址:https://www.cnblogs.com/iDouble/p/8543870.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved