广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >怎么使用js实现模拟鼠标拖拽事件
  • 185
分享到

怎么使用js实现模拟鼠标拖拽事件

2024-04-02 19:04:59 185人浏览 泡泡鱼
摘要

本篇内容介绍了“怎么使用js实现模拟鼠标拖拽事件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这次的效果图

本篇内容介绍了“怎么使用js实现模拟鼠标拖拽事件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

这次的效果图如下:

怎么使用js实现模拟鼠标拖拽事件

我认为这个实验的难点是保持盒子和鼠标的相对位置不变,通过鼠标按下和移动来实现拖拽的效果

如何实现拖拽的效果呢?

我们需要用到三个函数: onmousedownonmousemoveonmouseup,分别表示鼠标按下、鼠标移动、鼠标抬起

在鼠标按下的回调函数中,我们需要通过clientXclientY获取鼠标的初始位置,通过offsetLeftoffsetTop获取盒子的初始位置,然后计算鼠标初始位置和盒子初始位置的差值;

在鼠标移动的回调函数中,我们需要根据鼠标的位置和之前计算得到的差值来获取盒子现在的位置,然后改变其left和top值,不要忘记将position设置为absolute(因为我就忘记了。。。)

在鼠标抬起的回调函数中,我们需要清除鼠标移动和鼠标抬起,通过将onmousemoveonmouseup值设置为null即可

还要注意!!!

鼠标移动函数和抬起函数均要写在鼠标按下函数中,因为我们是要在鼠标按下这个动作之后来设计之后的行为,而且很重要的一点是:

鼠标按下函数是p的,鼠标移动和鼠标抬起是document的

因为我们的意思并不是鼠标在p中移动,而是在整个页面移动

重点大概是这些了,下面是代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta Http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #box{
            width: 100px;
            height: 100px;
            background-color: aquamarine;
            border-radius: 14px;
            box-shadow: 2px 2px 6px rgba(0,0,0,.3);

            
            position: absolute;
        }
    </style>
</head>
<body>
    <div id="box"></div>
    <script>
        let box=document.getElementById("box");
        box.onmousedown=function(event){
            let disx=event.clientX-box.offsetLeft;
            let disy=event.clientY-box.offsetTop;
            //此处不是box.onmousemove,是document.onmousemove
            document.onmousemove=function(event){
                box.style.left=event.clientX-disx+'px';
                box.style.top=event.clientY-disy+'px';
            }

            //要写在ommousedown里面
            document.onmouseup=function(){
                //这俩都要置为null
            document.onmousemove=null;
            document.onmouseup=null;
            return false;
        }
        }
        
    </script>
</body>
</html>

“怎么使用js实现模拟鼠标拖拽事件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么使用js实现模拟鼠标拖拽事件

本文链接: https://www.lsjlt.com/news/98510.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用js实现模拟鼠标拖拽事件
    本篇内容介绍了“怎么使用js实现模拟鼠标拖拽事件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这次的效果图...
    99+
    2022-10-19
  • 怎样使用js实现百度登录框鼠标拖拽效果
    这篇文章主要介绍怎样使用js实现百度登录框鼠标拖拽效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!知识点:1.掌握对可拖拽对话框的实现原理2.了解元素如何触发脚本方法以及如何编写侦...
    99+
    2022-10-19
  • 使用纯JS实现checkbox的框选效果(鼠标拖拽多选)
    目录主要思路css 代码如下html结构如下js主要逻辑如下总结 主要思路 用一个盒子作为选区,通过定位让其固定在左上角,由于没有给定选区元素的宽高所以默认不显示,在 onmouse...
    99+
    2022-11-13
  • 怎么用JavaScript实现div的鼠标拖拽效果
    这篇文章主要介绍“怎么用JavaScript实现div的鼠标拖拽效果”,在日常操作中,相信很多人在怎么用JavaScript实现div的鼠标拖拽效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Java...
    99+
    2023-06-25
  • PyQt5怎么使用mimeData实现拖拽事件
    本篇内容介绍了“PyQt5怎么使用mimeData实现拖拽事件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现思路简要介绍QMimeDat...
    99+
    2023-06-25
  • VUE怎么使用draggable实现组件拖拽
    这篇文章主要讲解了“VUE怎么使用draggable实现组件拖拽”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VUE怎么使用draggable实现组件拖拽”吧!实现步骤1、导入draggab...
    99+
    2023-06-29
  • 如何使用Vue实现一个简单的鼠标拖拽滚动效果插件
    这篇文章主要介绍了如何使用Vue实现一个简单的鼠标拖拽滚动效果插件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 演示事例最近在做...
    99+
    2022-10-19
  • 利用JavaScript怎么实现一个拖拽鼠标调整div大小的功能
    本篇文章为大家展示了利用JavaScript怎么实现一个拖拽鼠标调整div大小的功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向...
    99+
    2023-06-07
  • 怎么使用js实现拖动模态框
    本文小编为大家详细介绍“怎么使用js实现拖动模态框”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用js实现拖动模态框”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果如下:代码思路:1.点击弹出层,会弹出...
    99+
    2023-07-02
  • 使用vbs怎么实现拖拽文件显示文件路径
    这期内容当中小编将会给大家带来有关使用vbs怎么实现拖拽文件显示文件路径,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。代码一If wscript.Arguments.count=0 t...
    99+
    2023-06-08
  • 使用ajax怎么实现一个拖拽上传文件功能
    本篇文章给大家分享的是有关使用ajax怎么实现一个拖拽上传文件功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。<!DOCTYPE html><ht...
    99+
    2023-06-08
  • 怎么在Android中使用RecyclerView实现一个图标拖拽排序功能
    这期内容当中小编将会给大家带来有关怎么在Android中使用RecyclerView实现一个图标拖拽排序功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。实现的思路用两个RecyclerView实现,同时...
    99+
    2023-06-14
  • 怎么在Python中利用tkinter库实现投放鼠标模拟点击器
    本篇文章为大家展示了怎么在Python中利用tkinter库实现投放鼠标模拟点击器,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等...
    99+
    2023-06-14
  • 怎么使用HTML5与CSS3实现无插件拖拽上传图片功能
    这篇文章主要介绍“怎么使用HTML5与CSS3实现无插件拖拽上传图片功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用HTML5与CSS3实现无插件拖拽上传图片功能”文章能帮助大家解决问题。...
    99+
    2023-07-04
  • 怎么在pyqt5中利用ComboBox实现一个鼠标点击触发事件
    怎么在pyqt5中利用ComboBox实现一个鼠标点击触发事件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、自定义MyComboBox# MyComboBox...
    99+
    2023-06-14
  • 怎么用HTML5实现鼠标滚轮事件放大缩小图片的功能
    本篇内容介绍了“怎么用HTML5实现鼠标滚轮事件放大缩小图片的功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-19
  • 怎么使用JS实现一个跟随鼠标移动洒落的星星特效
    这篇“怎么使用JS实现一个跟随鼠标移动洒落的星星特效”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用JS实现一个跟随鼠...
    99+
    2023-07-05
  • 怎么使用js+canvas实现可自动吸附闭合的鼠标绘制多边形
    这篇文章主要介绍“怎么使用js+canvas实现可自动吸附闭合的鼠标绘制多边形”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用js+canvas实现可自动吸附闭合的鼠标绘制多边形”文章能帮助大...
    99+
    2023-07-02
  • 使用Nodejs怎么实现模块化和事件循环
    这期内容当中小编将会给大家带来有关使用Nodejs怎么实现模块化和事件循环,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1 Node.js简介Node.js 到底是什么?开始学习的时候,对于前端的一些知识...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作