javascript 拖拽调整div大小

本文介绍如何使用JavaScript实现div元素的拖拽调整大小功能,包括鼠标事件的监听、坐标计算和元素尺寸更新等核心步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style type="text/css">
        div {
            height: 200px;
            position: absolute;
            top: 0px;
        }
        .right {
            right: 0px;
        }
        .left {
            left: 0px;
        }
        .right,.left {
            width: 49.75%;
        }
        .drag {
            width: 0.5%;
            left: 49.75%
        }
    </style>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
</head>
<body>
<div class="left" style="background-color: grey"></div>
<div class="drag"></div>
<div class="right" style="background-color: cadetblue"></div>
<script type="text/javascript">
    //调整大小
    var resizeDiv = {
        init: function () {
            resizeFlag = false;
            this.mouseDown();
            this.mouseMove();
            this.mouseUp();
            this.mouseLeave();
        },
        mouseDown: function () {
            $(".drag").on("mousedown", function () {
            	//按下设为true,允许根据鼠标位置调整大小
                resizeFlag = true;
            });
        },
        mouseMove: function () {
            $(document).on("mousemove", function (e) {
        		//resizeFlag为true时才允许根据鼠标位置调整大小
                if (resizeFlag) {
                    var mousePointX = e.pageX;
                    if (mousePointX < $(window).width()) {
                        $(".left").css("width", mousePointX);
                        $(".right").css("width", $(window).width() - $(".left").width() - $(".drag").width());
                    }
                }
            });
        },
        mouseLeave: function () {
            $(document).on("mouseleave", function (e) {
            	//鼠标离开,标识设为false,不再根据鼠标位置调整大小
                resizeFlag = false;
            });
        },
        mouseUp: function () {
            $(document).on("mouseup", function () {
            	//鼠标抬起,标识设为false,不再根据鼠标位置调整大小
                resizeFlag = false;
            });
        }
    };
    resizeDiv.init();
</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值