js实现鼠标拖拽

目录

css代码

 html代码

js代码

完整代码

效果图: 


需求:

鼠标在图片内按下时 图片可以跟随盒子动

 鼠标弹起图片停下来

 如果图片在box的盒子里面时鼠标弹起了 就把图片展示在box里面 并且让图片回到起始位置

css代码

 .div {width: 100px;height: 100px;background-color: skyblue;position: absolute;top: 0;left: 0;}img {width: 100%;height: 100%;}.box {width: 300px;height: 300px;background-color: pink;margin-top: 300px;margin-left: 500px;}

 html代码

<div class="div"><img src="1.jpg" alt=""></div><div class="box"></div>

js代码

  <script>const div = document.querySelector('.div')const box = document.querySelector('.box')//鼠标在div按下div.onmousedown = function (e) {// 鼠标在按下后,在文档上移动时,盒子跟着document.onmousemove = function (e) {div.style.top = e.clientY + 'px'div.style.left = e.clientX + 'px'}}div.onmouseup = function (e) {//把div图片的地址拿到赋值给imgSrc变量const imgSrc = e.target.src// 判断div只要在box盒子里就把div图片给boxif (e.clientX > 500 && e.clientX < 800 && e.clientY > 300 && e.clientY < 600) {// 动态创建imgconst img = document.createElement('img')// 把imgSrc赋值给创建的img的src属性box.appendChild(img)// 把创建的img添加到box元素img.src = imgSrc//    div回到原来的位置div.style.top = 0div.style.left = 0}// 鼠标弹起时移除鼠标移动事件,让图片停下来document.onmousemove = null}</script>

完整代码

<!DOCTYPE html>
<html lang="en"><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>
</head>
<style>.div {width: 100px;height: 100px;background-color: skyblue;position: absolute;top: 0;left: 0;}img {width: 100%;height: 100%;}.box {width: 300px;height: 300px;background-color: pink;margin-top: 300px;margin-left: 500px;}
</style><body><div class="div"><img src="1.jpg" alt=""></div><div class="box"></div><script>const div = document.querySelector('.div')const box = document.querySelector('.box')// 鼠标在图片内按下时 图片可以跟随盒子动// 鼠标弹起图片停下来// 如果图片在box的盒子里面时鼠标弹起了 就把图片展示在box里面 并且让图片回到起始位置//鼠标在div按下div.onmousedown = function (e) {// 鼠标在按下后,在文档上移动时,盒子跟着document.onmousemove = function (e) {div.style.top = e.clientY + 'px'div.style.left = e.clientX + 'px'}}div.onmouseup = function (e) {//把div图片的地址拿到赋值给imgSrc变量const imgSrc = e.target.src// 判断div只要在box盒子里就把div图片给boxif (e.clientX > 500 && e.clientX < 800 && e.clientY > 300 && e.clientY < 600) {// 动态创建imgconst img = document.createElement('img')// 把imgSrc赋值给创建的img的src属性box.appendChild(img)// 把创建的img添加到box元素img.src = imgSrc//    div回到原来的位置div.style.top = 0div.style.left = 0}// 鼠标弹起时移除鼠标移动事件,让图片停下来document.onmousemove = null}</script>
</body></html>

效果图: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/228812.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

西南科技大学模拟电子技术实验二(二极管特性测试及其应用电路)预习报告

目录 一、计算/设计过程 二、画出并填写实验指导书上的预表 三、画出并填写实验指导书上的虚表 四、粘贴原理仿真、工程仿真截图 一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入…

视觉测量基础

1. 相机模型 1.1 坐标系转换原理 世界坐标系(world Coords):点在真实世界中的位置&#xff0c;描述相机位置。 相机坐标系(Cameras Coords):以相机光学系统中心&#xff08;镜头中心&#xff09;为原点&#xff0c;建立相机坐标系。 图像物理坐标系(Film Coords):经过小孔成…

漏洞扫描-德迅云安全漏洞扫描服务

漏洞扫描是指基于漏洞数据库&#xff0c;通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测&#xff0c;发现可利用漏洞的一种安全检测的行为。 漏洞扫描的主要目的是发现系统、网络或应用程序中可能存在的安全漏洞和缺陷&#xff0c;以便及时修复这些漏洞和缺…

浅谈安科瑞网络电力仪表在斯里兰卡某项目的应用

摘要&#xff1a;安科瑞APM系列网络仪表适用于高低压柜&#xff0c;进线以及出线处的全电量测量及监测。 Absrtact: APM series of network power meter are suitable for full power measurement and monitoring of high and low voltage cabinets, incoming and outgoing li…

1.2 C语言之变量与算数运算表达式概述

1.2 C语言之变量与算数运算表达式概述 一、华氏温度与摄氏温度对照二、代码概述三、练习 一、华氏温度与摄氏温度对照 #include <stdio.h>/*当华氏温度为 0,20,40,...300时&#xff0c;打印出华氏温度与摄氏温度对照表华氏温度与摄氏温度 C(5/9)(̧F-32) 其中C表示摄氏温…

算法面试题--树与对象数组的转化

1. Array -> Tree var arr [{ id: 12, parentId: 1, name: "朝阳区" },{ id: 241, parentId: 24, name: "田林街道" },{ id: 31, parentId: 3, name: "广州市" },{ id: 13, parentId: 1, name: "昌平区" },{ id: 2421, parentId:…

物理层之码分复用(内含相关例题)

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

智能井盖传感器怎么监测井盖倾斜?

城市道路上的井盖是常见的安全隐患&#xff0c;由于井盖质量不过关、安装不合理等原因导致的井盖位移或倾斜等事故&#xff0c;每年都处于不断增加的状态。为了减少此类案件的发生并维护社会治安&#xff0c;国家相关部门已经制定了多项政策法规对井盖进行统一监管。鼓励各个城…

这款高性能分布式ID生成器,现在是你的了~

这是DDD&微服务系列的第17篇&#xff0c;欢迎持续关注~ 概述 在软件开发过程中&#xff0c;我们经常会遇到需要生成全局唯一流水号的场景&#xff0c;例如各种流水号和分库分表的分布式主键ID。特别是在使用MySQL数据库时&#xff0c;除了要求流水号具有“全局唯一”性外&…

第二十章 多线程总结

继承Thread 类 Thread 类时 java.lang 包中的一个类&#xff0c;从类中实例化的对象代表线程&#xff0c;程序员启动一个新线程需要建立 Thread 实例。 Thread 对象需要一个任务来执行&#xff0c;任务是指线程在启动时执行的工作&#xff0c;start() 方法启动线程&…

Vue3 Teleport

假设情景 以下面截图为例&#xff0c;A组件中可以操控数字的加减&#xff0c;想把这个功能放到B组件中使用&#xff0c;AB两个组件非父子组件&#xff0c;甚至可能被嵌套了其他组件&#xff0c;一般办法可能是将A组件数据传给AB组件的父组件&#xff0c;然后在相办法给B&#…

将二维数组ndarray转置ndarray.T

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将二维数组ndarray转置 ndarray.T 选择题 执行以下代码transposed_arr的输出结果为&#xff1f; import numpy as np arr np.array([[1, 2, 3], [4, 5, 6]]) transposed_arr arr.T print(&q…