JavaScript实现简单的拖拽效果

 更新时间:2021年11月07日 16:02:24   作者:小白小白从不日白  
这篇文章主要为大家详细介绍了JavaScript实现简单的拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了JavaScript实现简单的拖拽效果的具体代码,供大家参考,具体内容如下

1.先搭架子:

* {
            margin: 0;
            padding: 0;
        }
        
        p {
            background: skyblue;
            text-align: center;
        }
        
        html,
        body {
            width: 100%;
            height: 100%;
        }
        
        .mask {
            width: 100%;
            height: 100%;
            position: fixed;
            left: 0;
            top: 0;
            background: rgba(0, 0, 0, .5);
            display: none;
        }
        
        .login {
            width: 400px;
            height: 300px;
            background: purple;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            display: none;
            cursor: move;
        }
        
        .login>span {
            display: inline-block;
            width: 50px;
            height: 50px;
            background: red;
            position: absolute;
            top: 0;
            right: 0;
        }
<p>我是p标签</p>
    <a href="http://www.baidu.com" >官网</a>
    <div class="mask"></div>
    <div class="login">
        <span></span>
</div>

2.逻辑部分

//1.拿到需要操作的元素
const oP = document.querySelector("p");
const oMask = document.querySelector(".mask");
const oLogin = document.querySelector(".login");
const oClose = oLogin.querySelector(".login>span");
// console.log(oClose);
 
//2.监听点击事件
oP.onclick = function() {
    oMask.style.display = "block";
    oLogin.style.display = "block";
        };
        oClose.onclick = function() {
            oMask.style.display = "none";
            oLogin.style.display = "none";
        };
 
//3.监听登录框的按下和移动事件
oLogin.onmousedown = function(e) {
            e = e || e.window;
 
            //1.计算固定不变的距离
            const x = e.pageX - oLogin.offsetLeft;
            const y = e.pageY - oLogin.offsetTop;
            // console.log(x);
 
            //2.监听移动事件
            oLogin.onmousemove = function(e) {
                e = e || e.window;
 
                //3.计算移动之后的偏移位
                let offsetX = e.pageX - x;
                let offsetY = e.pageY - y;
 
                //4.重新设置登录框的位置
                oLogin.style.left = offsetX + 'px';
                oLogin.style.top = offsetY + 'px';
            };
        };
 
        oLogin.onmouseup = function() {
            oLogin.onmousemove = null;
        };

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • js 实现无干扰阴影效果 简单好用(附文件下载)

    js 实现无干扰阴影效果 简单好用(附文件下载)

    js实现无干扰阴影效果,简单好用,需要的朋友可以参考下。
    2009-12-12
  • JS获取页面input控件中所有text控件并追加样式属性

    JS获取页面input控件中所有text控件并追加样式属性

    使用jquery来在页面加载时获取页面input控件中所有text控件并添加样式,由于其他方式比较麻烦所以就想通过在页面加载的时候将要改动的text找到并添加属性,感兴趣的你可以参考下,希望可以帮助到你
    2013-02-02
  • js取float型小数点后两位数的方法

    js取float型小数点后两位数的方法

    js中取小数点后两位方法最常用的就是四舍五入函数了,前面我介绍过js中四舍五入一此常用函数,这里正好用上,下面我们一起来看取float型小数点后两位一些方法总结
    2014-01-01
  • location.href 在IE6中不跳转的解决方法与推荐使用代码

    location.href 在IE6中不跳转的解决方法与推荐使用代码

    在js中,我们经常使用location.href来实现页面的跳转,为了方便我们写成函数。下面就分别说明下,下面的一些代码的实现问题。
    2010-07-07
  • electron 如何将任意资源打包的方法步骤

    electron 如何将任意资源打包的方法步骤

    这篇文章主要介绍了electron 如何将任意资源打包的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 微信小程序实现音乐播放器实例完整流程

    微信小程序实现音乐播放器实例完整流程

    这篇文章主要介绍了微信小程序实现音乐播放器实例完整流程,通过本章的学习,读者能够掌握小程序的基本交互逻辑的开发,能够运用API来实现项目中的特定功能,学会解决开发过程中常见的问题,需要的朋友可以参考下
    2024-10-10
  • 微信小程序实现比较功能的方法汇总(五种方法)

    微信小程序实现比较功能的方法汇总(五种方法)

    这篇文章主要介绍了微信小程序实现比较功能的方法,本文给大家列举出五种方式,每种方法通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • JavaScript Math对象和调试程序的方法分析

    JavaScript Math对象和调试程序的方法分析

    这篇文章主要介绍了JavaScript Math对象和调试程序的方法,结合实例形式分析了javascript中Math对象生成随机数以及使用alert()、console.log()函数进行错误调试相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • JavaScript基于对象去除数组重复项的方法

    JavaScript基于对象去除数组重复项的方法

    这篇文章主要介绍了JavaScript基于对象去除数组重复项的方法,结合实例形式分析了javascript数组去重的操作步骤与具体实现技巧,需要的朋友可以参考下
    2016-10-10
  • 实例分析JS中的相等性判断===、 ==和Object.is()

    实例分析JS中的相等性判断===、 ==和Object.is()

    这篇文章主要给大家介绍了关于JS中相等性判断===、 ==和Object.is()的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JS具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11

最新评论