获取鼠标在画布中的位置

news2024/11/24 12:40:12

获取鼠标在画布中的位置

效果展示

在这里插入图片描述

概述

本文讲解如何实现我们平时用的画布软件中,怎么获取的我们鼠标时刻在画布中的位置。

构建HTML框架

<body>
    <div class="box"></div>    
</body>

CSS样式

<style>
        .box {
            /* 设置盒子的大小 */
            width: 300px;
            height: 300px;
            /* 设置盒子的背景 */
            background-color: white;
            /* 设置边框 */
            border: 1px solid black;
            /* 设置盒子的外边距 */
            margin: 200px;
        }
    </style>

JS逻辑

<script>
        // 思路:
        // 我们在盒子内点击, 想要得到鼠标距离盒子左右的距离。
        // 首先得到鼠标在页面中的坐标( e.pageX, e.pageY)
        // 其次得到盒子在页面中的距离(box.offsetLeft, box.offsetTop)
        // 用鼠标距离页面的坐标减去盒子在页面中的距离, 得到 鼠标在盒子内的坐标
        // 我们生活中常见的画布里面的那个获取鼠标的位置 就是这么实现的
        var box = document.querySelector('.box');  // 获取盒子的元素
        box.addEventListener('mousemove', function(e) {  // 为盒子添加监听事件 当鼠标在盒子上面的时候
            // console.log(e.pageX);
            // console.log(e.pageY);
            // console.log(box.offsetLeft);
            var x = e.pageX - this.offsetLeft; 
            var y = e.pageY - this.offsetTop;
            this.innerHTML = 'x坐标是' + x + ' y坐标是' + y;
        })
    </script>

完整代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .box {
            /* 设置盒子的大小 */
            width: 300px;
            height: 300px;
            /* 设置盒子的背景 */
            background-color: white;
            /* 设置边框 */
            border: 1px solid black;
            /* 设置盒子的外边距 */
            margin: 200px;
        }
    </style>
</head>

<body>
    <div class="box"></div>
    <script>
        // 思路:
        // 我们在盒子内点击, 想要得到鼠标距离盒子左右的距离。
        // 首先得到鼠标在页面中的坐标( e.pageX, e.pageY)
        // 其次得到盒子在页面中的距离(box.offsetLeft, box.offsetTop)
        // 用鼠标距离页面的坐标减去盒子在页面中的距离, 得到 鼠标在盒子内的坐标
        // 我们生活中常见的画布里面的那个获取鼠标的位置 就是这么实现的
        var box = document.querySelector('.box');  // 获取盒子的元素
        box.addEventListener('mousemove', function(e) {  // 为盒子添加监听事件 当鼠标在盒子上面的时候
            // console.log(e.pageX);
            // console.log(e.pageY);
            // console.log(box.offsetLeft);
            var x = e.pageX - this.offsetLeft; 
            var y = e.pageY - this.offsetTop;
            this.innerHTML = 'x坐标是' + x + ' y坐标是' + y;
        })
    </script>
</body>

</html>

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

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

相关文章

IDEA 2022.3 发布,终于支持 redis 了

IntelliJ IDEA 发布了最新2022.3版本&#xff0c;本次更新&#xff1a;可以通过设置切换到新 UI&#xff0c;即可预览焕然一新的 IDE 外观。引入了一个新的 Settings Sync&#xff08;设置同步&#xff09;解决方案&#xff0c;用于同步和备份自定义用户设置。此外&#xff0c;…

私域运营对于企业的重要性

企业进行私域流量的精细化运营&#xff0c;不仅可以打造属于企业自己的社群王国&#xff0c;还可以挖掘存量客户的价值&#xff0c;实现更智能的客户管理和个性化运营方案。 前言 相信每个人都对瑞幸咖啡略有耳闻&#xff0c;这个国产咖啡品牌曾一度被封神&#xff0c;但随着财…

【leetcode】2404. 出现最频繁的偶数元素(js实现)

1. 题目 2404. 出现最频繁的偶数元素 2. 思路 创建哈希表&#xff0c;统计偶数的出现次数将哈希表转换成数组&#xff0c;遍历哈希表&#xff0c;设置res的初始值为[-1&#xff0c;0]&#xff0c;第一个值为偶数值&#xff0c;第二个值为这个偶数出现的次数&#xff1b;如果…

探花交友_第3章_完善个人信息(新版)

探花交友_第3章_完善个人信息(新版) 文章目录探花交友_第3章_完善个人信息(新版)课程介绍1. 完善用户信息1.1 阿里云OSS1.1.1 概述1.1.2 账号申请购买服务创建Bucket1.1.3 抽取模板工具OssPropertiesOssTemplateTanhuaAutoConfiguration1.1.4 测试1.2 百度人脸识别1.2.1 概述1.…

PyCharm+PyQT5之四第二个QT程序

前面程序实现了逻辑分离&#xff0c;第二个QT程序将建立控件之间的关联&#xff0c;并自行撰写&#xff0c;事件。 首先&#xff0c;建立只有一个按钮的界面 点击工具栏编辑信号与槽&#xff0c;按钮带有红框并拖拽&#xff0c;这样间建立了按钮与dialog的槽信号。 按钮一般是…

【OpenCV学习】第7课:形态学操作-膨胀与腐蚀

仅自学做笔记用,后续有错误会更改 理论 图像形态学操作-基于形状的一系列图像处理操作的合集, 主要是基于集合论基础上的形态学数学形态学有4个基本操作:膨胀丶腐蚀丶开丶闭膨胀与腐蚀是图像处理中最常用的形态学操作手段 形态学操作(morphology operators)-膨胀 跟前边的卷…

行者AI解析内容审核平台中的图像检测技术原理

本文首发&#xff1a;行者AI谛听 近些年&#xff0c;监管部分对于平台的信息方面&#xff0c;越来越严格&#xff0c;继而有很多企业选择智能AI内容审核服务&#xff0c;帮助企业快速处理平台上一些违规内容。 很多人不懂这方面到底属于什么&#xff0c;今天行者AI就来为大家解…

【Python】python入门,这一篇就够了

快速入门/一文免挂Python程序元素变量python中的符号Python的程序结构分支结构异常处理循环结构Python函数python中的可变参数python中的全局变量和局部变量组合数据类型之序列类型序列通用操作字符串&#xff08;str&#xff09;字符串常用函数字符串类型的格式化列表&#xf…

Qt第三十一章:渐变QGradient

线性渐变&#xff1a;QLinearGradient class TestGradient(QWidget):def __init__(self, parentNone):super(TestGradient, self).__init__(parent)self.resize(300, 300)label QLabel(self)label.setGeometry(0, 0, 300, 300)"""线形渐变"""la…

802.11基础——术语及缩略语

目录 WiFi LAN&#xff08;局域网&#xff09; WAN&#xff08;广域网&#xff09; WLAN&#xff08;Wireless LAN&#xff0c;即无线局域网&#xff09; AP&#xff08;Access point的简称&#xff0c;即访问点&#xff0c;接入点&#xff09; Station&#xff08;工作站…

HTML期末学生大作业 基于HTML+CSS+JavaScript通用的后台管理系统ui框架模板

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

[附源码]Python计算机毕业设计Django线上评分分享平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Docker安装MoogoDB, 进入容器, mongo shell操作mongoDB

安装MoogoDB, 进入容器, mongo shell操作mongoDB [Docker-Compose方式、普通方式] 文章目录安装MoogoDB, 进入容器, mongo shell操作mongoDB[Docker-Compose方式、普通方式]附件&#xff1a;单词本附件&#xff1a;什么是 . yml 后缀文件 ?[ 普通方式 ]1. 下载镜像:* 拓展&am…

职场中,如何让“讨厌的人”配合自己工作?

在职场上&#xff0c;我们总会遇到那么几个不愿意配合你工作的人&#xff0c;不仅不配合&#xff0c;甚至还喜欢扯皮&#xff0c;推卸责任&#xff0c;甩锅给自己的队友。然而&#xff0c;我们也不可能因为工作中出现了这样一个或几个人&#xff0c;就离职不干&#xff0c;或者…

ChatGPT-地表最强AI模型!要消灭人类?

大家好&#xff0c;我是贺同学&#xff0c;最近&#xff0c;美国人工智能研究机构 Openai 发布了最新的大语言模型 ChatGPT&#xff0c;惊艳的性能在海外掀起了一波又一波热潮。通过对各种领域专业知识的训练&#xff0c;ChatGPT 不仅可以帮助人们搜索知识&#xff0c;还能进行…

认证与授权之Cookie、Session、Token、JWT

Spring Security系列文章 认证与授权之Cookie、Session、Token、JWT 认证与授权 认证 进入移动互联网时代&#xff0c;大家每天都在刷手机&#xff0c;常用的软件有微信、支付宝、头条等&#xff0c;下边拿微信来举例子说明认证相关的基本概念&#xff0c;在初次使用微信前需…

html静态网站基于动漫主题网站网页设计与实现共计10个页面——二次元漫画

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…

有哪些电容笔值得推荐?十大电容笔知名品牌

虽然苹果的原装电容笔操作起来很顺手&#xff0c;性能很不错&#xff0c;但因为价格太高&#xff0c;所以让不少学生党都望而止步&#xff0c;而且重量也不小&#xff0c;用久了会手累。既然是来学习的&#xff0c;那就不一定要买这么昂贵的电容笔了。目前市场上的平替电容笔有…

中国书画院院士、著名画家——戴友

戴友 戴友 中国书画院院士、著名画家 广州美术学院国画系毕业的专业画家 师从著名国画大家关山月、黎雄才、方楚雄、周波 艺术简介 戴友&#xff0c;著名画家、中国书画院院士。1960年生于广东&#xff0c;江苏省溧阳市人&#xff0c;汉族。自幼自学绘画&#xff0c;1991年…

程序开发工具vim——vi的高级版本(记得收藏)

提示&#xff1a;在学习本文知识的时候记得温故一下文本编辑器vi的知识点&#xff1a;文本编辑器vi看这篇就够了因为目前大部分的Linux发行版都以vim替换vi的功能了&#xff0c;所以学习vi也很必要。 一.vim的缓存、恢复与打开时的警告信息 目前主要的文本编辑器都会有恢复的功…