Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js drag

作者:平凡中的不凡   发布日期:2025-07-01   浏览:43

// HTML部分
<div id="dragBox" style="width: 100px; height: 100px; background-color: red; position: absolute;"></div>

// JavaScript部分
document.addEventListener('DOMContentLoaded', function () {
    var dragBox = document.getElementById('dragBox');
    var isDragging = false;
    var offsetX, offsetY;

    // 鼠标按下事件
    dragBox.addEventListener('mousedown', function (e) {
        isDragging = true;
        offsetX = e.clientX - dragBox.offsetLeft;
        offsetY = e.clientY - dragBox.offsetTop;
    });

    // 鼠标移动事件
    document.addEventListener('mousemove', function (e) {
        if (isDragging) {
            dragBox.style.left = (e.clientX - offsetX) + 'px';
            dragBox.style.top = (e.clientY - offsetY) + 'px';
        }
    });

    // 鼠标释放事件
    document.addEventListener('mouseup', function () {
        isDragging = false;
    });
});

解释说明:

  1. HTML部分

    • 创建了一个 div 元素,设置了宽度、高度、背景颜色,并将其定位为绝对位置(position: absolute),以便可以自由拖动。
  2. JavaScript部分

    • 使用 DOMContentLoaded 事件确保 DOM 完全加载后再执行脚本。
    • 获取要拖动的元素 dragBox
    • 定义了三个变量:isDragging 用于标记是否正在拖动,offsetXoffsetY 用于存储鼠标相对于元素左上角的偏移量。
    • mousedown 事件:当鼠标在 dragBox 上按下时,设置 isDraggingtrue,并计算鼠标点击位置相对于元素左上角的偏移量。
    • mousemove 事件:当鼠标移动时,如果 isDraggingtrue,则更新元素的位置,使其跟随鼠标移动。
    • mouseup 事件:当鼠标释放时,设置 isDraggingfalse,停止拖动。

上一篇:js 时间轴

下一篇:js splice和slice区别

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组复制

js 复制数组

js 数组拷贝

js 对象转数组

js 深拷贝数组

js 获取今天年月日

js jsonp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站