首页 > 其他分享 >前端拖拽

前端拖拽

时间:2024-03-11 11:37:10浏览次数:21  
标签:console target 前端 event drag addEventListener 拖拽 left

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .main {
      display: flex;
      justify-content:space-around;
    }
    .left {
      width: 300px;
      height: 500px;
      border: 1px solid lightseagreen;
      margin-right: 10px;
      /* background-color: green; */
    }
    .right {
      width: 300px;
      height: 500px;
      border: 1px solid lightseagreen;
      text-align: center;
      padding: 1px;
      /* background: red; */
    }
    .txt {
      border: 1px solid gray;
      margin: 1px;
      padding: 5px;
      cursor: move;
    }
  </style>
</head>
<body>
  <main class="main">
    <div class="left" id="left">
      <div class="txt-show">左边区域</div>
      <div class="dargable txt" id="txt1" draggable="true">可移动的文字一</div>
      <div class="dargable txt" id="txt2" draggable="true">可移动的文字二</div>
      <div class="dargable txt" id="txt3" draggable="true">可移动的文字三</div>
      <div class="dargable txt" id="txt4" draggable="true">可移动的文字四</div>
      <div class="dargable txt" id="txt5" draggable="true">可移动的文字五</div>
    </div>
    <div class="right" id="right">
      <div class="txt-show">右边区域</div>
    </div>
  </main>
  <script>
  let left = document.getElementById('left')
  let target = document.getElementById('right')
  left.addEventListener('dragstart', (event) => {
    event.dataTransfer.setData('Text', target.id)
    console.log('drag开始拖动啦1');
  })
  target.addEventListener('dragstart', (event) => {
    const target = event.target; 
    event.dataTransfer.setData('Text', target.id)
  })
  left.addEventListener('drag', (event) => {
    console.log('drag正在拖啦2');
  })
  left.addEventListener('dragend', (event) => {
    console.log('dragend拖动结束啦7');
  })
  target.addEventListener('dragenter', (event) => {
    console.log('dragenter进入区域啦3')
  })
  target.addEventListener('dragover', (event) => {
    event.preventDefault();
    console.log('dragover在区域内拖动啦4')
  })
  left.addEventListener('dragover', (event) => {
    event.preventDefault();
  })
  target.addEventListener('dragleave', (event) => {
    console.log('dragleave离开拖动区域啦5')
  })
  target.addEventListener('drop', (event) => {
    let drag_id = event.dataTransfer.getData('text')
    target.appendChild(document.getElementById(drag_id))
  })
  left.addEventListener('drop', (event) => {
    let drag_id = event.dataTransfer.getData('text')
    left.appendChild(document.getElementById(drag_id))
  })
  </script>
</body>
</html>

 

标签:console,target,前端,event,drag,addEventListener,拖拽,left
From: https://www.cnblogs.com/webtown/p/18065714

相关文章

  • 走进前端工程化
    虽然前端工程化的概念兴起还没几年的时间,但是对于“工程化”这个词并不是一个新鲜词了,在其他软件开发的领域很早就已经有了高度的工程化,例如Web服务端开发。只不过那个时候,前端工程师并没有工程化的意识,也没有必要对前端进行工程化的操作,毕竟在那个时期,前端的开发工作只能算......
  • 前端基础
    【一】什么是前端【1】什么是前端任何与用户直接打交道的操作界面都可以称之为前端比如电脑界面、手机界面、平板界面【2】什么是后端不直接与用户打交道的用于执行真正业务逻辑的代码比如C代码,Java代码,Python代码【3】前端基础【二】Web服务器【1】在浏览器......
  • 前端发送的请求,是如何请求到后端服务的?
    发现问题通过对前端请求路径以及后端接口地址的对比可以发现,两者其实并不相同,也就是说前端的请求并不是直接去发送给后端的tomcat服务器的,而是前端浏览器首先去请求nginx服务器,然后再通过nginx反向代理将请求转发到后端的tomcat服务器。提出问题那么我们为什么不直接将请求直接......
  • vue前端框架的使用
    最近需要改造一个旧项目,旧项目使用的springremote,需求,将前端页面单独分离出一个应用服务,这里将使用node.js作为服务技术栈使用的前端框架是vue,这里使用的版本是vue2.9听说2.x跟3.x版本有一定的区别.先研究一下2.x之前只知道nodejs能够挂载静态页面云云,之前有项目这样......
  • 【前端Vue】Vue从0基础完整教程第1篇:vue基本概念,vue-cli的使用【附代码文档】
    Vue从0基础到大神学习完整教程完整教程(附代码资料)主要内容讲述:vue基本概念,vue-cli的使用,vue的插值表达式,{{gaga}},{{if(obj.age>18){}}},vue指令,综合案例-文章标题编辑vue介绍,开发vue的方式,基本使用,如何覆盖webpack配置,目录分析与清理,vue单文件组件的说明,vue通......
  • 安装前端依赖和运行项目时的问题
    前端1.安装依赖使用WebStorm或VSCode工具打开项目前端源码,在项目根目录运行命令:npminstall--force使用npminstall会报错(这是一个与依赖项冲突相关的问题)。报错:npmERR!codeCERT_HAS_EXPIREDnpmERR!errnoCERT_HAS_EXPIREDnpmERR!requesttohttps://registry.np......
  • 前端保存图片
    importReact,{useRef}from'react';importhtml2canvasfrom'html2canvas';constDownloadImage=()=>{constelementRef=useRef(null);consthandleDownload=()=>{constelement=elementRef.current;html2c......
  • 【前端Vue】社交信息头条项目完整笔记第1篇:一、项目初始化【附代码文档】
    社交媒体-信息头条项目完整开发笔记完整教程(附代码资料)主要内容讲述:一、项目初始化使用VueCLI创建项目,加入Git版本管理,调整初始目录结构,导入图标素材。二、登录注册准备,实现基本登录功能,登录状态提示,表单验证。三、个人中心,四、首页—文章列表TabBar处理,页面布局,处......
  • 使用Web Vitals针对性的优化前端LCP指标
    1、安装WebVitals浏览器插件2、打开设置3、勾选打印日志 4、打开浏览器控制台即可查看需要优化的点5、LCP耗时的构成部分"LCPsub-part":"TimetoFirstByte""Time(ms)":39这个部分时间表示服务器的首个字节到达所花费的时间。这是指从浏览器发出请求到服务......
  • Vue3 组合函数拖拽
    代码exportfunctionuseDragMouse(dom,container){letcontainerX=0;letcontainerY=0;letstartX=0;letstartY=0;functiondragPage(e){container.value.style.left=e.pageX-startX+containerX+"px";container.valu......