• JS拖拽效果的原理及实现


    JS拖拽效果的原理及实现

    大家好,我是来自逆战班的一员,今天来给大家讲解一下JS中拖拽效果的原理及实现。

    首先我们先看一下拖拽效果的代码以及实现效果

     

    是不是很神奇呢?

    接下来我们来拆分理解一下代码

    style部分我们就不详说了,但是一定要记得给div加position定位!!!!!!

    首先我们写一下这个例子的实施思路:

           拖拽div,我们要按下鼠标点盒子,

    然后盒子被鼠标移动

    最后鼠标左键放开盒子停止被移动

    就这简简单单的三个步骤

    我们来看一下JS代码:

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

    这里就是获取div元素

    ①   div.onmousedown=function(e1){

    ②   document.onmousemove=function(e){

                    div.style.left=e.clientX-e1.offsetX+"px";

                    div.style.top=e.clientY-e1.offsetY+"px";

                }

    ③   document.onmouseup=function(){

                    document.onmousemove=null;

                    document.onmouseup=null;

                }

            }

    这里的①②③部分就是我们所说的三个步骤

    ①    我们要想移动div就必须先按下左键然后才移动,所以②③部分就是包含在①步骤之内的,

    ②    定义鼠标移动函数:div的左边/顶边等于鼠标移动是的视口X / Y的距离减去相对于带有定位的父盒子的X / Y坐标,如果只设置视口X / Y的坐标它就只会在div的左上角移动,设置了offsetX/Y之后就会点哪里就在哪里移动

    ③    定义鼠标放开后在文档内的函数,这时候鼠标移动函数和它自身的函数就要取消。

    到这里我们的拖拽事件就完成啦,是不是很简单呢?快去动手实践一下吧!

  • 相关阅读:
    关于Update语句在不同数据库中的差别
    MSIL指令速查表
    一个对于博客园的建议
    代码风格关于if语句
    关于Page.cs文件中注释的一点补充
    在Java、C#和C++中遍历集合
    BPEL4WS的开源Java实现
    【Linux】linux固定ip
    【Linux】【MySQL】MySQL主从数据库
    wpf 写个简单的控件吧
  • 原文地址:https://www.cnblogs.com/zy1270078548/p/12643893.html
Copyright © 2020-2023  润新知