分享web开发知识

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

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

原生js实现 拖拽事件

发布时间:2023-09-06 02:18责任编辑:郭大石关键词:js
<!DOCTYPE html><html> ???<head> ???????<meta charset="UTF-8"> ???????<title></title> ???????<style type="text/css"> ???????????.box { ???????????????width: 200px; ???????????????height: 200px; ???????????????background-color: #000000; ???????????????position: absolute; ???????????????left: 0; ???????????????top: 0; ???????????????color: #FFFFFF; ???????????????line-height: 200px; ???????????????font-size: 20px; ???????????????cursor: move; ???????????} ???????</style> ???</head> ???<body> ???????<div id="box" class="box"> ???????????拖拽事件,文字选中 ???????</div> ???????<script type="text/javascript"> ???????????window.onload = function() { ???????????????var oBox = document.getElementById("box"); ???????????????//修正文字选中问题 ???????????????oBox.onselectstart = function() { ???????????????????return false; ???????????????} ???????????????oBox.ondragstart = function() { ???????????????????return false; ???????????????} ???????????????oBox.onmousedown = function(e) { ???????????????????var top = this.offsetTop; ???????????????????var left = this.offsetLeft; ???????????????????//起点 ???????????????????var originX = e.clientX; ???????????????????var originY = e.clientY; ???????????????????document.onmousemove = function(e) { ???????????????????????var endX = e.clientX; ???????????????????????var endY = e.clientY; ???????????????????????//X轴、Y轴移动距离 ???????????????????????var distanceX = endX - originX; ???????????????????????var distanceY = endY - originY; ???????????????????????oBox.style.left = (left + distanceX) + "px"; ???????????????????????oBox.style.top = (top + distanceY) + "px"; ???????????????????} ???????????????} ???????????????//移除move事件 ???????????????document.onmouseup = function() { ???????????????????document.onmousemove = null; ???????????????} ???????????????//鼠标移动mouseover ???????????????oBox.onmousemove = function(e) { ???????????????????//box宽度高度 ???????????????????var width = this.offsetWidth; ???????????????????var height = this.offsetHeight; ???????????????????//box的top/left ???????????????????var top = this.offsetTop; ???????????????????var left = this.offsetLeft; ???????????????????//鼠标坐标 ???????????????????var mouseX = e.clientX; ???????????????????var mouseY = e.clientY; ???????????????????//最大坐标X,最大坐标Y ???????????????????var maxX = left + width; ???????????????????var maxY = top + height; ???????????????????if(maxX - mouseX < 10 && maxY - mouseY < 10) { ???????????????????????this.style.cursor = "nw-resize"; ???????????????????} else { ???????????????????????this.style.cursor = "move"; ???????????????????} ???????????????} ???????????} ???????</script> ??????????</body></html>

原生js实现 拖拽事件

原文地址:https://www.cnblogs.com/150536FBB/p/9787419.html

知识推荐

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