web建站教程
  1. 首页
  2. vuejs
  3. js
  4. 好玩
  5. AIGC工具
  6. 前端知识
  7. 百度echarts
  8. 更多
    php入门
    nodejs
    mockjs
    reactjs
    mysql
    wordpress
    织梦cms
    帝国cms
    git教程
    IT知识
    模板大全
    休息站
    手机应用

利用javascript实现拖拽功能(附代码)

761 ℃

如何利用javascript原生实现标签的拖拽,下面web建站小编给大家详细介绍一下功能的实现方法。

完整代码如下:

<html>
  <head>
    <meta charset="UTF-8" />
    <title>Lazyload</title>
    <style>
      .drag {
        background-color: skyblue;
        position: absolute;
        line-height: 100px;
        text-align: center;
        width: 100px;
        height: 100px;
      }
    </style>
  </head>
  <body>
    <!-- left和top要写在行内样式里面 -->
    <div style="left: 0; top: 0">按住拖动</div>
    <script src="./jquery-3.6.0.min.js"></script>
    <script>
      // 获取DOM元素
      let dragDiv = document.getElementsByClassName('drag')[0]
      // 鼠标按下事件 处理程序
      let putDown = function (event) {
        dragDiv.style.cursor = 'pointer'
        let offsetX = parseInt(dragDiv.style.left) // 获取当前的x轴距离
        let offsetY = parseInt(dragDiv.style.top) // 获取当前的y轴距离
        let innerX = event.clientX - offsetX // 获取鼠标在方块内的x轴距
        let innerY = event.clientY - offsetY // 获取鼠标在方块内的y轴距
        // 按住鼠标时为div添加一个border
        dragDiv.style.borderStyle = 'solid'
        dragDiv.style.borderColor = 'red'
        dragDiv.style.borderWidth = '3px'
        // 鼠标移动的时候不停的修改div的left和top值
        document.onmousemove = function (event) {
          dragDiv.style.left = event.clientX - innerX + 'px'
          dragDiv.style.top = event.clientY - innerY + 'px'
          // 边界判断
          if (parseInt(dragDiv.style.left) <= 0) {
            dragDiv.style.left = '0px'
          }
          if (parseInt(dragDiv.style.top) <= 0) {
            dragDiv.style.top = '0px'
          }
          if (
            parseInt(dragDiv.style.left) >=
            window.innerWidth - parseInt(dragDiv.style.width)
          ) {
            dragDiv.style.left =
              window.innerWidth - parseInt(dragDiv.style.width) + 'px'
          }
          if (
            parseInt(dragDiv.style.top) >=
            window.innerHeight - parseInt(dragDiv.style.height)
          ) {
            dragDiv.style.top =
              window.innerHeight - parseInt(dragDiv.style.height) + 'px'
          }
        }
        // 鼠标抬起时,清除绑定在文档上的mousemove和mouseup事件
        // 否则鼠标抬起后还可以继续拖拽方块
        document.onmouseup = function () {
          document.onmousemove = null
          document.onmouseup = null
          // 清除border
          dragDiv.style.borderStyle = ''
          dragDiv.style.borderColor = ''
          dragDiv.style.borderWidth = ''
        }
      }
      // 绑定鼠标按下事件
      dragDiv.addEventListener('mousedown', putDown, false)
    </script>
  </body>
</html>

一款革命性的低代码开发平台,可拖拽组件——Noodl

bootstrap框架如何实现拖拽效果

javascript如何利用draggable实现一个拖拽效果

css3如何实现鼠标拖拽效果(resize)

vuejs利用awe-dnd插件实现拖拽功能

标签: 拖拽功能, 拖拽效果

上面是“利用javascript实现拖拽功能(附代码)”的全面内容,想了解更多关于 js 内容,请继续关注web建站教程。

当前网址:https://ipkd.cn/webs_2501.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

当前位置: 网站首页 > js
本文共计1700个字,预计阅读时长12分钟
Trae:新一代免费的AI编程工具

基金从业资格考试题库

一站式备考基金从业资格考试,收录2021-2025年模拟题库!呱呱工具箱

AI工作站

收录全球3800+ 款各行各业AI应用,轻轻松松做事!
生活小工具,收录了80多款小工具
上一篇: 推荐一个可以查询老黄历的网站,可以根据五行取名!
下一篇: 详细介绍HTTP状态码不同之处的原因(什么原因导致的)
x 打工人ai神器