首页 > 其他分享 >前端如何实现一个可拖拽的按钮 转

前端如何实现一个可拖拽的按钮 转

时间:2023-03-17 20:44:44浏览次数:37  
标签:document 前端 拖拽 监听器 按钮 var btn event

chatgpt的答案  https://chat.forchange.cn/ 

 

 

// 获取按钮元素
var btn = document.getElementById("dragBtn");
// 定义变量,用于记录鼠标在按钮上的偏移量
var offsetX = 0;
var offsetY = 0;
// 给按钮元素添加 mousedown 事件监听器
btn.addEventListener("mousedown", function(event) {
  // 计算鼠标在按钮上的偏移量
  offsetX = event.clientX - btn.offsetLeft;
  offsetY = event.clientY - btn.offsetTop;
  // 给文档添加 mousemove 事件监听器
  document.addEventListener("mousemove", onDrag);
});
// 定义拖拽事件处理函数
function onDrag(event) {
  // 计算按钮应该移动到的位置
  var left = event.clientX - offsetX;
  var top = event.clientY - offsetY;
  // 更新按钮的位置
  btn.style.left = left + "px";
  btn.style.top = top + "px";
}
// 给文档添加 mouseup 事件监听器
document.addEventListener("mouseup", function() {
  // 移除 mousemove 事件监听器
  document.removeEventListener("mousemove", onDrag);
});

 

标签:document,前端,拖拽,监听器,按钮,var,btn,event
From: https://www.cnblogs.com/dhjy123/p/17228101.html

相关文章

  • 前端-笔试刷题-JavaScript
    基本数据类型检测题目描述请补全JavaScript函数,要求以字符串的形式返回参数的类型。注意:只需检测基本数据类型。点击查看代码function_typeof(value){//......
  • 前端有边界,但低代码没有
    “前端已死”的论调,每隔一段时间就会被翻出来重新讨论,除了先前人们担忧的低代码对前端开发者的影响,还有最近爆火的chatGPT、GPT-4等。作为前端开发者,我非常不认可“前端已......
  • 设备检测,系统无法识别。没有打开前端口的音频。
    处理方法:(1)打开开始--控制面板-选择"声音、语音和音频设备"--“Realtek高清晰音频配置”;(2)进入"Realtek高清晰音频配置"界面,选择切换到顶部的"音频I/O"选项卡,并点击......
  • 前端-笔试刷题-新窗口打开
    题目描述请写出可以在新窗口打开文档的a标签。点击查看代码<!--补全代码--><ahref="#"target="_blank">链接</a>效果图:![](https://img2023.cnblogs.com/b......
  • 前端包管理工具
    NPM是Node.js的包管理器工具,是js开发人员共享打包的代码模块,是前端web应用程序等的开放源代码包的公共集合。yarn是安装和共享代码的包管理工具,也是项目管理工具。Bower......
  • 微信小程序消息推送(订阅消息)接入 前端+后端
    1.第一步是需要在微信公众平台配置,具体参考官方文档订阅消息配置2.然后需要在前端代码中调用微信消息订阅api,调起客户端小程序订阅消息界面,具体api参考订阅消息api点......
  • 前端操作cookie的用法
    前端操作cookie的方法        +前端操作cookie的方法        +增删改查四个操作      设置cookie      ......
  • 前端-表单表格图像-练习
    题目描述请依次写出以下类型的输入框。类型为密码,默认值为"nowcoder"类型为复选框,且状态为已勾选点击查看代码<form><!--补全代码--><inputtype="p......
  • django返回文件(无论什么格式的)给前端
    读取文件方法:defread_file(file_name,chunk_size=512):withopen(file_name,"rb")asf:whileTrue:c=f.read(chunk_size)......
  • Jetbrains Rider New UI找回工具栏上的前进后退按钮
    更新到最新版本并启用了NewUI之后,前进后退按钮没了,此时我们在设置的MenusandToobars->MainToobarLeft点添加MainMenu->Navigate->Back|Forward即可。......