JavaScript怎么实现简单拖拽效果
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本篇内容主要讲解"JavaScript怎么实现简单拖拽效果",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JavaScript怎么实现简单拖拽效果"吧!本文
千家信息网最后更新 2025年02月02日JavaScript怎么实现简单拖拽效果
本篇内容主要讲解"JavaScript怎么实现简单拖拽效果",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JavaScript怎么实现简单拖拽效果"吧!
本文实例为大家分享了JavaScript实现简单拖拽效果的具体代码,供大家参考,具体内容如下
先看实现的效果:
思路:里面用到了三个事件,鼠标按下、移动、松开事件
那么首先创建盒子并且给它赋予css样式
HTML:
// html我是个蓝色的盒子
CSS:
CSS*{margin: 0;padding: 0;} div{ width: 100px; height: 100px; background-color: cornflowerblue; position: absolute; } p{ width: 100px; height: 100px; line-height: 100px; font-size: 10px; color: #fff; text-align: center; transition: .5s all; } p:hover{ transform: translateY(-5px); transition: .5s all; box-shadow: 10px 10px 5px gray;}
然后在JS设置相应的方法
var div = document.querySelector('div'); var p = document.querySelector('p'); // 先定义初始化变量x、y var x =0; var y = 0; // var i = 3; var TorF= false; //盒子里的文字无法被选中 div.onselectstart = function (e) { return false; } div.addEventListener('mousedown',function(e){ // client:鼠标按钮时输出鼠标指针的坐标 x = e.clientX; y = e.clientY; // 格式:obj.offsetLeft:获取左和上的偏移量 // 在这里特别说明一下:这个属性是只读的,不能够赋值。 // 返回当前元素距离父元素(body)左边的距离 // 这里的l,t并不是声明了一个全局变量,而是创建了一个全局对象的属性。 l = div.offsetLeft; t = div.offsetTop; // 鼠标设置移动箭头 div.style.cursor = 'move'; p[xss_clean] = '我被按下了 ^_^'; TorF= true; }); // 当整个屏幕触发移动事件时 document.addEventListener('mousemove',function(e){ // 如果为false则终止函数的执行并返回函数的值 if (Torf == false) { return; } // 在此函数中定义局部变量 var twox = e.clientX; var twoy = e.clientY; // 用获取到的鼠标指针的坐标 - (鼠标指针的坐标 - 偏移量) = 实际鼠标拖动的位置 // 后面一定要加上px单位,因为本身获取是没有单位的 var twol = twox - (x-l); var twot = twoy - (y-t); div.style.left = twol+'px'; div.style.top = twot+'px'; p[xss_clean] = '我正在被拖动 -.-'; }); div.addEventListener('mouseup',function(){ // 松开键盘时停止鼠标移动事件 TorF= false; // 鼠标恢复默认样式 div.style.cursor = 'default'; p[xss_clean] = '我被弹开了QAQ'; })
注意:
1、想控制某一个盒子的位置,必须给盒子添加定位,否则盒子不会动
2、offsetLeft这个属性是只读的,不能够赋值
3、鼠标位置的的计算:鼠标指针的坐标 - (鼠标指针的坐标 - 偏移量) = 实际鼠标拖动的位置
到此,相信大家对"JavaScript怎么实现简单拖拽效果"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
鼠标
盒子
效果
坐标
指针
事件
位置
移动
内容
函数
变量
实际
属性
偏移
元素
全局
单位
方法
样式
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
医院网络安全自查工作
易语言sql数据库 创建
广东定制软件开发有哪些
资金合作社系统软件开发公司
数据库基础与应用考试
三级网络技术考试视频教程
群体化软件开发方法是哪一项
如何把数据库搭建新的网站
数据库如何删除表某行中数据
四是做好网络安全工作计划
软件开发组件怎么升级
服务器插上硬盘不工作
数据库系统工程师 难么
软件开发招聘 面试题
正牛酒店管理系统服务器
华为网络技术研究院
从哪方面学习网络技术
消灭病毒服务器最高多少级
服务器存储扩容
河南整机销售软件开发公司
河南项目软件开发要多少钱
徐州辅助软件开发
计算机网络技术及应用难吗
业务流程与数据库
软件开发往翰诺科技
网络安全 执法 规范
类似汇卡卡软件开发
服务器1.1
温州软件开发驻场服务公司
温州工业软件开发工程师