html中,实现通过拖拽调整图像尺寸

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>html中拖拽修改图像尺寸</title>
<style>
  #imageContainer {
    position: relative;
    display: inline-block;
  }
  #resizeHandle {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 20px;
    height: 20px;
    cursor: nw-resize;
    background-color: #333;
    color: white;
    text-align: center;
    line-height: 20px;
  }
  img {
    display: block;
    max-width: 100%;
  }


    .zoom {
        position: absolute;
        width: 6px;
        height: 6px;
        background: #fff;
        border: 1px solid #2298ff;
        border-radius: 50%;
        display: none;
    }

        .zoom.up-left {
            margin-top: -5px;
            margin-left: -5px;
            cursor: nw-resize;
            top: 0;
        }

        .zoom.up {
            left: 50%;
            margin-left: -5px;
            top: -5px;
            cursor: n-resize;
        }

        .zoom.up-right {
            top: -5px;
            right: -5px;
            cursor: ne-resize;
        }

        .zoom.right {
            top: 50%;
            margin-top: -5px;
            right: -5px;
            cursor: e-resize;
        }

        .zoom.right-down {
            right: -5px;
            bottom: -5px;
            cursor: se-resize;
        }

        .zoom.down {
            bottom: -5px;
            left: 50%;
            margin-left: -5px;
            cursor: s-resize;
        }

        .zoom.left-down {
            left: -5px;
            bottom: -5px;
            cursor: sw-resize;
        }

        .zoom.left {
            left: -5px;
            top: 50%;
            margin-top: -5px;
            cursor: w-resize;
        }

    .active {
        border: 2px solid #f00;
    }

</style>
</head>
<body>
 
    <div id="imageContainer" class="active">
        <img src="http://localhost:51190//upload/exam/paper/20241210/b211681f38514f56ab933ea6152ad808.png?_t=20241210165544?t=10000" alt="Resizable Image">
        <!--<div id="resizeHandle">◢</div>-->

        <div class="zoom right-down" style="display: block;"></div>

        <!--<div class="zoom up-left" style="display: block;"></div>
        <div class="zoom up" style="display: block;"></div>
        <div class="zoom up-right" style="display: block;"></div>
        <div class="zoom right" style="display: block;"></div>
        <div class="zoom down" style="display: block;"></div>
        <div class="zoom left-down" style="display: block;"></div>
        <div class="zoom left" style="display: block;"></div>-->
    </div>
 
<script>
    // JavaScript to make the resize handle draggable and resize the image
    //const handle = document.getElementById('resizeHandle');

    const image = document.querySelector('#imageContainer img');
    let isResizing = false;
    let startX;
    let startY;
    let startWidth;
    let startHeight;

    //handle.addEventListener('mousedown', function(e) {
    //  isResizing = true;
    //  startX = e.clientX;
    //  startY = e.clientY;
    //  startWidth = parseInt(getComputedStyle(image).width, 10);
    //  startHeight = parseInt(getComputedStyle(image).height, 10);
    //});

    document.querySelector('.zoom').addEventListener("mousedown", function (e) {//菜单点击时,防止误拖拽
        isResizing = true;
        startX = e.clientX;
        startY = e.clientY;
        startWidth = parseInt(getComputedStyle(image).width, 10);
        startHeight = parseInt(getComputedStyle(image).height, 10);
    });
 
    document.addEventListener('mousemove', function(e) {
        if (isResizing) {
            const deltaX = e.clientX - startX;
            const deltaY = e.clientY - startY;
            image.style.width = (startWidth + deltaX) + 'px';
            image.style.height = (startHeight + deltaY) + 'px';
        }
    });
 
    document.addEventListener('mouseup', function() {
        isResizing = false;
    });
</script>
 
</body>
</html>
相关推荐
伊一大数据&人工智能学习日志15 分钟前
Python爬虫——HTML中Xpath定位
爬虫·python·html
m0_7482396327 分钟前
【HTML入门】第十六课 - 网页中的按钮们
前端·html
( •̀∀•́ )9203 小时前
深入理解 XPath:XML 和 HTML 文档的利器
xml·服务器·html
m0_748235244 小时前
前端:HTML、CSS、JS、Vue
前端·javascript·html
莫惊春6 小时前
HTML5 第七章
前端·html·html5
莫惊春7 小时前
HTML5 第六章
前端·html·html5
m0_748256567 小时前
前端新手教程:HTML、CSS 和 JavaScript 全面详解及实用案例
前端·css·html
幽兰的天空7 小时前
HTML 基本语法
前端·html
编织幻境的妖7 小时前
HTML和JavaScript实现简单OA系统
开发语言·javascript·html