返回顶部
首页 > 资讯 > 精选 >JavaScript拖拽效果
  • 756
分享到

JavaScript拖拽效果

2023-06-03 12:06:59 756人浏览 八月长安
摘要

要实现javascript的拖拽效果,首先我们需要知道事件对象几个有关于实现拖拽效果的坐标获取事件对象 var e = e || window.event;根据需求需要用到的拖拽效果的坐标clientX:鼠标点击位置相对于浏览器可视区域的水

要实现javascript的拖拽效果,首先我们需要知道事件对象几个有关于实现拖拽效果的坐标

获取事件对象 var e = e || window.event;

根据需求需要用到的拖拽效果的坐标

clientX:鼠标点击位置相对于浏览器可视区域的水平偏移量(不会计算水平滚动的距离)

clientY:鼠标点击位置相对于浏览器可视区域的垂直偏移量(不会计算垂直滚动条的距离)

offsetX:鼠标点击位置相对于触发事件对象的水平距离

offsetY:鼠标点击位置相对于触发事件对象的垂直距离

pageX:鼠标点击位置相对于网页左上角的水平偏移量,也就是clientX加 上水平滚动条的距离

pageY:鼠标点击位置相对于网页左上角的垂直平偏移量,也就是clientY加上垂直滚动条的距离

offsetLeft:如果父元素中有定位的元素,那么就返回距离当前元素最近的定位元素边缘的距离

offsetTop:如果父元素中没有定位元素,那么就返回相对于body左边缘距离

获取元素自身大小:offsetWidth和offsetHeight / clientWidth和clientHeight

offsetWidth和clientWidth的区别:就是offsetWidth包含边框,clientWidth不包含边框

实现拖拽需要用到:clientWidth、clientHeight、clientX、clientY、offsetLeft、offsetTop

首先搭建好html结构和CSS样式

  <div class="wrap">

        <div class="cover">

        </div>

    </div>

1

2

3

4

5

* {

            margin: 0;

            padding: 0;

        }

        

        .wrap {

            width: 500px;

            height: 500px;

            border: 1px solid deeppink;

            position: relative;

            margin: 50px auto;

        }

        

        .cover {

            width: 150px;

            height: 150px;

            background: rgba(200, 7, 99, 0.5);

            display: none;

            position: absolute;

            left: 0;

            top: 0;

            cursor: move;

        }

注意:需要给大盒子和小盒子进行定位:子绝父相

接下来就JavaScript代码

汇率计算www.gendan5.com/exrate.html

<script>

    var wrap = document.querySelector(".wrap");

    var cover = document.querySelector(".cover");

    wrap.{

        cover.style.display = "block";

        wrap.{

            var e = e || window.event;

            var x1 = e.clientX;

            var y1 = e.clientY;

//这里获取到的e.clientX和e.clientY,可以看情况和需求改为e.pageX和e.pageY             

            var halfWidth = cover.clientWidth / 2;

            var halfHeight = cover.clientHeight / 2;

            var wrapLeft = wrap.offsetLeft;

            var wrapTop = wrap.offsetTop;

            var l = x1 - wrapLeft - halfWidth;

            var t = y1 - wrapTop - halfHeight;

            if (l <= 0) {

                l = 0

            }

            if (l >= wrap.clientWidth - cover.clientWidth) {

                l = wrap.clientWidth - cover.clientWidth

            }

            if (t <= 0) {

                t = 0

            }

            if (t >= wrap.clientHeight - cover.clientHeight) {

                t = wrap.clientHeight - cover.clientHeight

            }

            cover.style.left = l + "px";

            cover.style.top = t + "px"

        }

    }

    wrap.{

        cover.style.display = "none";

    }

</script>

            var halfWidth = cover.clientWidth / 2;

            var halfHeight = cover.clientHeight / 2;

            var wrapLeft = wrap.offsetLeft;

            var wrapTop = wrap.offsetTop;

            var l = x1 - wrapLeft - halfWidth;

            var t = y1 - wrapTop - halfHeight;

            //限制范围

             if (l <= 0) {

                l = 0

            }

            if (l >= wrap.clientWidth - cover.clientWidth) {

                l = wrap.clientWidth - cover.clientWidth

            }

            if (t <= 0) {

                t = 0

            }

            if (t >= wrap.clientHeight - cover.clientHeight) {

                t = wrap.clientHeight - cover.clientHeight

            }

注意:这里要限制小盒子在大盒子之间移动的范围,左上角的限制,当小盒子超出范围时,将0赋值给l和t。右下角小盒子移动的范围在大盒子宽度减去小盒子的宽度。

其中为了使鼠标一直处于小盒子(cover)的最中间,需要减去小盒子宽度的一半。

再减去大盒子距离页面左边的边距和上边的边距就可以得到坐标

只要鼠标移入大盒子中,就能直接拖拽小盒子,并且鼠标一直处于小盒子的最中间。这样便完成了简单的拖拽效果。

--结束END--

本文标题: JavaScript拖拽效果

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

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

猜你喜欢
  • JavaScript拖拽效果
    要实现JavaScript的拖拽效果,首先我们需要知道事件对象几个有关于实现拖拽效果的坐标获取事件对象 var e = e || window.event;根据需求需要用到的拖拽效果的坐标clientX:鼠标点击位置相对于浏览器可视区域的水...
    99+
    2023-06-03
  • JavaScript实现简单拖拽效果
    本文实例为大家分享了JavaScript实现简单拖拽效果的具体代码,供大家参考,具体内容如下 先看实现的效果: 思路:里面用到了三个事件,鼠标按下、移动、松开事件 那么首先创建盒子...
    99+
    2024-04-02
  • JavaScript实现拖拽简单效果
    本文实例为大家分享了JavaScript实现拖拽效果的具体代码,供大家参考,具体内容如下 1.1 拖拽的基本效果 思路: 鼠标在盒子上按下时,准备移动 (事件加给物体) 鼠标移动时,...
    99+
    2024-04-02
  • JavaScript实现鼠标拖拽效果
    本文实例为大家分享了JavaScript实现鼠标拖拽效果的具体代码,供大家参考,具体内容如下 这次的效果图如下: 我认为这个实验的难点是保持盒子和鼠标的相对位置不变,通过鼠标按下和...
    99+
    2024-04-02
  • Javascript实现登录框拖拽效果
    本文实例为大家分享了Javascript实现登录框拖拽效果的具体代码,供大家参考,具体内容如下 需求分析 1、点击弹出登录框 2、在登录框的特定区域可以将登录框拖拽至任意位置 3...
    99+
    2024-04-02
  • JavaScript实现九宫格拖拽效果
    本文实例为大家分享了JavaScript实现九宫格拖拽效果的具体代码,供大家参考,具体内容如下 关于一些拼图游戏什么的,见人家效果做的不错,参考下别人写的代码,我也尝试着做了个。 &...
    99+
    2024-04-02
  • JavaScript实现模态框拖拽效果
    在这里做一个模态框拖曳的案例,在这里要实现的功能有: 1.点击弹出层, 会弹出模态框, 并且显示灰色半透明的遮挡层。 2.点击关闭按钮,可以关闭模态框,并且同时关闭灰色半透明遮挡层。...
    99+
    2024-04-02
  • JavaScript实现简单的拖拽效果
    本文实例为大家分享了JavaScript实现简单的拖拽效果的具体代码,供大家参考,具体内容如下 1.先搭架子: * { margin: 0; ...
    99+
    2024-04-02
  • 如何使用JavaScript实现拖拽效果
    这篇文章主要介绍如何使用JavaScript实现拖拽效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!拖拽在前端开发中是很常见的功能,也是基本功之一,本文是不限制范围的拖拽也就是最简...
    99+
    2024-04-02
  • JavaScript怎么实现拖拽排序效果
    这篇“JavaScript怎么实现拖拽排序效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript怎么实现拖拽...
    99+
    2023-06-30
  • JavaScript实现div的鼠标拖拽效果
    本文实例为大家分享了JavaScript实现div鼠标拖拽效果的具体代码,供大家参考,具体内容如下 实现原理鼠标按下时根据onmousemove事件来动态获取鼠标坐标位置以此来更新d...
    99+
    2024-04-02
  • 原生JS拖拽效果
    很多时候我们做网站都会遇到JS拖拽的需求,今天就按照一个弹出框拖拽作为一个小案例写个JS原生的代码。按照上面的需求咱们开始制作一个拖拽效果吧。第一步、咱们得写一个布局和响应的css<div id="box"...
    99+
    2023-06-02
  • JavaScript怎么实现模态框拖拽效果
    这篇文章主要介绍“JavaScript怎么实现模态框拖拽效果”,在日常操作中,相信很多人在JavaScript怎么实现模态框拖拽效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript怎么实现模...
    99+
    2023-06-22
  • JavaScript如何实现九宫格拖拽效果
    这篇文章主要介绍“JavaScript如何实现九宫格拖拽效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript如何实现九宫格拖拽效果”文章能帮助大家解决问题。代码如下:<!DO...
    99+
    2023-07-02
  • AndroidRecycleView实现Item拖拽效果
    基于公司产品的优化需求,其中一个需求涉及到RecycleView的拖拽,以及拖拽后item位置的持久化,目的是可以用户自定义界面偏好,并在用户下次进入本界面后,之前设置的偏好仍然有效...
    99+
    2024-04-02
  • 拖拽插件sortable.js实现el-table表格拖拽效果
    目录问题描述案例一 简单拖拽代码附上案例二 el-table表格拖拽效果图代码附上问题描述 Sortable.js是一款优秀的js拖拽库,因为是原生js写的,所以性能不错,也支持移动...
    99+
    2024-04-02
  • 使用JavaScript实现一个拖拽缩放效果
    目录前言基本思路拖拽实现缩放实现最后前言 在写一个简单的H5页面时,需要实现如下的一个拖拽效果,找了半天未能找到符合要求的,含泪手写先来看一下我们要是实现一个怎样的效果 基本思路 ...
    99+
    2024-04-02
  • 怎么用JavaScript实现简单的拖拽效果
    这篇文章主要介绍“怎么用JavaScript实现简单的拖拽效果”,在日常操作中,相信很多人在怎么用JavaScript实现简单的拖拽效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用JavaScript...
    99+
    2023-06-25
  • JavaScript怎么实现登录框鼠标拖拽效果
    本文小编为大家详细介绍“JavaScript怎么实现登录框鼠标拖拽效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript怎么实现登录框鼠标拖拽效果”文章能帮助大家解决疑惑,下面跟着小编的思...
    99+
    2024-04-02
  • 怎么用JavaScript实现div的鼠标拖拽效果
    这篇文章主要介绍“怎么用JavaScript实现div的鼠标拖拽效果”,在日常操作中,相信很多人在怎么用JavaScript实现div的鼠标拖拽效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Java...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作