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

627 ℃

如何利用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>

bootstrap框架如何实现拖拽效果

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

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

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

vuejs如何实现穿梭框左右拖拽(附代码)

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

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

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

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

SEO优化中网站301跳转的常见问题有哪些?
SEO优化关键词分类方法 你知道多少
html文本如何读取数据库代码示例
el-dialog中获取el-table组件的ref值报undefined错误!
搜索引擎批评网站文章是否高质量的标准是什么?