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

news2024/12/24 20:40:40

<!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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2257692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Composer在安装的过程中经常找不到刚更新的包

明明有v2.1.0版本&#xff0c;安装就是找不到这个版本的包。 1. Composer 官方网址&#xff1a;https://getcomposer.org 中文网站&#xff1a;https://www.phpcomposer.com 官方文档&#xff1a;https://docs.phpcomposer.com 2. Packagist Packagist 是 Composer的组件仓库…

项目实例_FashionMNIST_CNN

前言 提醒&#xff1a; 文章内容为方便作者自己后日复习与查阅而进行的书写与发布&#xff0c;其中引用内容都会使用链接表明出处&#xff08;如有侵权问题&#xff0c;请及时联系&#xff09;。 其中内容多为一次书写&#xff0c;缺少检查与订正&#xff0c;如有问题或其他拓展…

使用数据库同步中间件DBSyncer实现不同数据库的数据同步

点击上方蓝字关注我 有去O(ORACLE数据库)、信创、国产化数据库等项目实践的同学应该都遇到过不同数据库之前进行数据迁移的问题&#xff0c;虽然有各种工具可以实现&#xff0c;但是有些工具的部署、使用比较复杂&#xff0c;也有些工具迁移数据效率很低。本文将介绍一款开源且…

SQL汇总数据:聚集函数

我们经常需要汇总数据而无需实际检索出这些数据&#xff0c;为此SQL提供了专门的函数。使用这些函数&#xff0c;SQL查询能够高效地检索数据&#xff0c;以便进行分析和报表生成。这类检索的例子包括&#xff1a; 确定表中行数&#xff08;或者满足某个条件或包含某个特定值的…

HTML颜色-HTML脚本

HTML脚本 js使得HTML页面具有更强的动态和交互性 HTML<script>标签 标签用于定义客户端脚本&#xff0c;比如javascript 可包含脚本语句&#xff0c;也可以通过src属性指向外部的脚本文件 JavaScript最常用于图片操作&#xff0c;表单验证以及动态的内容更新 HTML<n…

ASP.NET Core8.0学习笔记(二十五)——EF Core Include导航数据加载之预加载与过滤

一、导航属性数据加载 1.在EF Core中可以使用导航属性来加载相关实体。 2.加载实体的三种方式&#xff1a; (1)预先加载&#xff1a;直接在查询主体时就把对应的依赖实体查出来&#xff08;作为初始查询的一部分&#xff09; (2)显式加载&#xff1a;使用代码指示稍后显式的从…

【工具变量】上市公司企业过度负债数据(2000-2022年)

一、计算方式&#xff1a;参考C刊《投资研究》汪昌云&#xff08;2022&#xff09;老师的研究&#xff0c;将实际负债率与 Tobit 回归得到的目标负债率之差认定为过度负债率&#xff0c;该种方式认为目标负债率的驱动因素包括公司特征与行业因素&#xff0c;较为全面&#xff0…

分布式数据库中间件-Sharding-JDBC

文章目录 Sharding-JDBCSharding-JDBC介绍Sharding-JDBC的作用什么是分库分表分库分表的方式分库分表带来的问题事务一致性问题跨节点关联查询跨节点分页、排序函数主键重复 Sharding-JDBC 入门&#xff08;水平分表&#xff09;需求说明环境搭建编写代码流程分析其他配置方式概…

FPGA 16 ,Verilog中的位宽:深入理解与应用

目录 前言 一. 位宽的基本概念 二. 位宽的定义方法 1. 使用向量变量定义位宽 ① 向量类型及位宽指定 ② 位宽范围及位索引含义 ③ 存储数据与字节数据 2. 使用常量参数定义位宽 3. 使用宏定义位宽 4. 使用[:][-:]操作符定义位宽 1. 详细解释 : 操作符 -: 操作符 …

HTML:表格重点

用表格就用table caption为该表上部信息&#xff0c;用来说明表的作用 thead为表头主要信息&#xff0c;效果加粗 tbody为表格中的主体内容 tr是 table row 表格的行 td是table data th是table heading表格标题 &#xff0c;一般表格第一行的数据都是table heading

hbuilder 本地插件配置

插件存放路径&#xff0c;项目根目录nativeplugins下&#xff0c;没有就新建。 aar文件存放路径\nativeplugins\pda-module\android package.json存放路径\nativeplugins\module\ 配置package.json文件 { "name": "本地插件", "id": &quo…

大模型应用的数字能源数据集

除了尚须时日的量子计算解决算力效率和能源问题&#xff0c;以及正在路上的超越transformer的全新模型架构外&#xff0c;无疑是“数据集”&#xff0c;准确讲是“高质量大规模多样性的数据集”。数据集是大模型发展的核心要素之一&#xff0c;是大计算的标的物&#xff0c;是实…

飞书解除复制,下载文件限制终极方案

1.通过移除copy 事件&#xff0c;可以复制文档内容&#xff0c;但是飞书表格增加了键盘按键事件&#xff0c;表格无法复制&#xff0c;下载 2.通过chrome插件&#xff0c;可以复制clould document converter 可以实现下载飞书文档&#xff0c;但是无法下载表格 而且无法识别自定…

Java面试题精选:设计模式(二)

1、装饰器模式与代理模式的区别 1&#xff09;代理模式(Proxy Design Pattern ) 原始定义是&#xff1a;让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问&#xff0c;并允许将请求提交给对象前后进行一些处理。 代理模式的适用场景 功能增强 当需要对一个对…

自然语言处理:从入门到精通全指引

一、引言 自然语言处理&#xff08;NLP&#xff09;作为人工智能领域的关键分支&#xff0c;旨在让计算机理解、生成和处理人类语言&#xff0c;近年来取得了令人瞩目的成就&#xff0c;在智能客服、机器翻译、文本分析、语音助手等众多领域发挥着重要作用。从入门到精通自然语…

Typora 修改默认的高亮颜色

shift F12 参考 怎么给typora添加颜色&#xff1f;

(1)Quartus中如何在外设FLASH中固化jic文件

&#xff08;1&#xff09;在产生jic文件前&#xff0c;必须已经综合通过&#xff0c;生成了sof文件 &#xff08;2&#xff09;点击file-convert Programming Files... &#xff08;3&#xff09;文件类型选择jic文件&#xff0c;flsh型号设定为EPCS128 &#xff08;4&#…

OpenAI2024-12D-3:Sora 发布,谁更胜一筹——Sora 与可灵的全面前瞻对比

藏了一年&#xff0c;终于OpenAI在12天活动的第三天&#xff0c;正式发布了其全新创意工具——Sora&#xff0c;这款工具凭借其强大的文本到视频生成能力和高度的创作自由度&#xff0c;迅速吸引了广大创作者的目光。与此同时&#xff0c;已经在视频创作领域有着成熟表现的可灵…

重生之我在异世界学智力题(4)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言渡河问题&#xff08;1&#xff09;问…

福州大学《2024年812自动控制原理真题》 (完整版)

本文内容&#xff0c;全部选自自动化考研联盟的&#xff1a;《福州大学812自控考研资料》的真题篇。后续会持续更新更多学校&#xff0c;更多年份的真题&#xff0c;记得关注哦~ 目录 2024年真题 Part1&#xff1a;2024年完整版真题 2024年真题