元素偏移量offset系列

WebAPI第四天学习总结—— 元素偏移量 offset 系列 元素偏移量 offset 系列 offset 概述 offset 翻译过来就是偏移量, 我们使用 offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。 获得元素距离带有定位父元素的位置 获得元素自身的大小(宽度高度) 注意:返回的数值都不带单位 offset 系列常用属性 offset系列属性 作用 element.offsetParent 返回作为该元素带有定位的父级元素。 如果父级都没有定位则返回body element.offsetTop 返回元素相对 阅读详情

元素偏移量offset系列

offset系列属性

offset 就是偏移量,我们使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。
在这里插入图片描述

        var father = document.querySelector('.father');
        var son = document.querySelector('.son');
        // 1.可以得到元素的偏移  位置 返回的不带单位的数值
        console.log(father.offsetTop); //150
        console.log(father.offsetLeft); //150
        // 它以带有定位的父亲为准,如果没有父亲或者父亲没有定位 则以 body为准
        console.log(son.offsetLeft); //45
        var w = document.querySelector('.w');
        // 2.可以得到元素的大小 宽度和高度 是包含padding + border + width
        console.log(w.offsetWidth); //927
        console.log(w.offsetHeight); //250
        // 3.返回带有定位的父亲 否则是body   两个返回父元素的区别:
        console.log(son.offserParent); //返回父亲(带定位)   如果父亲没有定位 则返回的是body
        console.log(son.parentNode); //返回父亲 是最近一级的父亲 亲爸爸 不管父亲有没有定位

offset与style的区别:

在这里插入图片描述

<div class="box" style="width: 200px;"></div>
    <script>
        // offset 与 style的区别
        var box = document.querySelector('.box');
        console.log(box.offsetWidth); //220
        console.log(box.style.width); //200
        // box.offsetWidth = '300px'; //盒子宽度未变
        box.style.width = '300px'; //盒子宽度变了
    </script>

案例:计算鼠标在盒子内的坐标

  1. 我们在盒子内点击,想要得到鼠标距离盒子左右的距离。 首先得到鼠标在页面中的坐标 (e.pageX, e.pageY)
  2. 其次得到盒子在页面中的距离(box.offsetLeft, box.offsetTop)
  3. 用鼠标距离页面的坐标减去盒子在页面中的距离,得到 鼠标在盒子内的坐标
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;
        })

案例:拖动的模态框

在这里插入图片描述
1.获取元素后
2.点击弹出层这个链接 link 让mask 和login 显示出来

link.addEventListener('click', function() {
                mask.style.display = 'block';
                login.style.display = 'block';

            })

3.点击 closeBtn 就隐藏 mask 和 login

closeBtn.addEventListener('click', function() {
                mask.style.display = 'none';
                login.style.display = 'none';
            })

4.开始拖拽

(1) 当我们鼠标按下,就获得鼠标在盒子内的坐标

 title.addEventListener('mousedown', function(e) {
            var x = e.pageX - login.offsetLeft;
            var y = e.pageY - login.offsetTop;

(2) 鼠标移动的时候,把鼠标在页面中的坐标,减去 鼠标在盒子内的坐标(固定值)就是模态框的left 和 top值;
移动代码必须写在鼠标按下之后里面,因为只有鼠标按下之后 才能移动.

document.addEventListener('mousemove', move)

            function move(e) {
                login.style.left = e.pageX - x + 'px';
                login.style.top = e.pageY - y + 'px';
            }

(3) 鼠标弹起,就让鼠标移动时间移除

document.addEventListener('mouseup', function() {
                document.removeEventListener('mousemove', move);
            })

案例:京东放大镜效果

在这里插入图片描述
获取元素后:
1.当鼠标经过 preview_img 就显示和隐藏 mask 遮挡层 和 big 大盒子

preview_img.addEventListener('mouseover', function() {
        mask.style.display = 'block';
        big.style.display = 'block';
    })
    preview_img.addEventListener('mouseout', function() {
            mask.style.display = 'none';
            big.style.display = 'none';
        })

2.鼠标移动的时候,就让黄色的盒子跟着鼠标来走

preview_img.addEventListener('mousemove', function(e) {
        // (1).先计算出鼠标在盒子内的坐标
        var x = e.pageX - this.offsetLeft;
        var y = e.pageY - this.offsetTop;
        // console.log(x, y);
        // (2)减去盒子高度 300 的一半 是150 就是我们 mask的最终 left 和 top值了
        // (3)我们 mask 移动的距离
        // 让鼠标在黄色盒子的中心 跟着一起移动
        var maskX = x - mask.offsetWidth / 2; //mask.offsetWidth是盒子的自身宽度
        var maskY = y - mask.offsetHeight / 2;
        // (4) 如果x 坐标小于了0 就让他停在 0 的位置 (不让黄色盒子超出大盒子范围)
        var maskMax = preview_img.offsetWidth - mask.offsetWidth;
        if (maskX <= 0) { //遮挡层左边最多不能超过0 否则x=0
            maskX = 0;
        } else if (maskX >= maskMax) {
            maskX = maskMax; //遮挡层右边最多不能超过最大值
        }
        if (maskY <= 0) {
            maskY = 0;
        } else if (maskY >= maskMax) {
            maskY = maskMax;
        }
        // 遮挡层的最大移动距离
        mask.style.left = maskX + 'px';
        mask.style.top = maskY + 'px';

3.大图片的移动距离 = 遮挡层移动距离 * 大图片最大移动距离 / 遮挡层的最大移动距离

// 大图
        var bigIMg = document.querySelector('.bigImg');
        // 大图片最大移动距离   (大图片-大盒子)
        var bigMax = bigIMg.offsetWidth - big.offsetWidth;
        // 大图片的移动距离 X  Y
        var bigX = maskX * bigMax / maskMax;
        var bigY = maskY * bigMax / maskMax;
        bigIMg.style.left = -bigX + 'px'; //负数 是因为 遮挡层向左 大图得向右移动 才能把左边展现出来
        bigIMg.style.top = -bigY + 'px';
    })
})
Untitled_计算两张图片位移_untitledmosaic_Untitled_ 计算两张图片位移,可以用于图像拼接。但畸变图形效果较差。 立即下载

相关推荐

Fluent 中多相流模型全面解析

3.颗粒或液滴在连续相中的运动:若关注颗粒或液滴在连续相中的运动轨迹、分布规律以及与连续相的相互作用,如喷雾干燥、气力输送等过程,Eulerian-Lagrangian 模型则是最佳选择。Eulerian-Eulerian 模型可以准确模拟气体在固体颗粒中的流动情况,包括颗粒的流化状态、气体与颗粒之间的传热传质过程,为气固流化床的优化设计和操作提供依据。通过该模型,可以了解混合器内不同位置的混合程度、颗粒的运动轨迹以及液固相间的相互作用,从而改进混合器的结构和操作条件,提高混合效率。

khhdp的博客 3087

元素偏移量offset的学习

元素偏移量offset的学习 元素偏移量offset的学习一、offset概述offset与style的区别 一、offset概述 offset就是偏移量,使用offset系列相关属性可以动态地得到该元素的位置(偏移)、大小等。 获得元素距离带有定位父元素地位置; 获得元素自身的大小(宽度、高度); 返回的数值都不带单位。 offset系列常用属性: 举例: <!DOCTYPE html> <html lang="en"> <head> <meta

m0_51528800的博客 1884

11n、11ac、11ax和11be MCS表(全网最全)

1、无线协商速率介绍及计算 2、附11n、11ac、11ax 完整MCS速率表

weixin_41500064的博客 2万+

JavaScript----同步异步,offset,client,scroll,结尾附带小案例

同步任务与异步任务: 在介绍同步任务与异步任务之前,我们首先要了解一下JS的执行机制,JS语言最大的特点是单线程(单线程:同一个时间只能一件事情) 在DOM操作中充分的展现了单线程的特征:创建一个元素,只有等这个元素创建完成之后才可以将这个元素添加到某个节点中去 但是单线程会导致若一个JS执行的时间过长,会导致页面渲染不连贯,造成这个的原因就是延时任务(计时器,资源加载,事件…)之后的任务要等待延时任务的完成才能执行,若这个延时任务所耗时间过长,后面的任务就会一直进行等待 这个问题计算机采用了CPU多核的特

你的小甜甜的博客 580

混沌系统在图像加密中的应用(随机性测试之FIPS 140-2测试和SP800-22测试)

本节内容我们将学习混沌序列的随机性测试,那么前面讲了,混沌系统产生的随机序列,它的随机性到底好不好,除了看相图、分岔图、指数图以外,还有一个非常重要的指标,那就是FIPS 140-2测试和SP800-22测试。(1)保证密码学模块的安全性:密码学模块在加密和解密敏感信息时使用随机数生成器来增加对手动解密和猜测攻击的抵抗力。通过进行FIPS 140-2测试,可以验证密码学模块是否符合安全标准,确保其实施和设计的安全性,以有效地保护敏感信息。

weixin_42207434的博客 2085

✨使用 vLLM + Docker 部署 Qwen3-Embedding-8B 并实现高效文本向量生成(附 `curl` 测试)

本文介绍了如何使用 vLLM 和 Docker 部署 Qwen3-Embedding-8B 嵌入模型服务,并通过标准 OpenAI 兼容接口进行调用和结果解析。如果你在部署中遇到任何问题,欢迎留言讨论!

用大模型重构生活:猫奴程序员的AI智能日常记录 6240

元素偏移量 offset 系列

offset 翻译过来就是偏移量, 我们使用 offset 系列相关属性可以动态的得到该元素的位置(偏移)、大小等。 (1) 获得元素距离带有定位父元素的位置 (2) 获得元素自身的大小(宽度高度) (3) 注意: 返回的数值都不带单位offset 系列常用属性有:(1)offset ① offset 可以得到任意样式表中的样式值 ② offset 系列获得的数值是没有单位的 ③ offsetWidth、offsetHeight包含padding+border+width ④ offsetWidth、

JJ_Smilewang的博客 1366

奥比中光Gemini335L SDK实战:从标定参数到3D点云转换

本文详细介绍了奥比中光Gemini 335L深度相机的SDK实战应用,重点讲解如何跳过繁琐的棋盘格标定,直接调用出厂预标定参数实现高效的3D点云转换。通过解析内参、外参获取及四种核心坐标转换模式,并结合OpenCV等工具,指导开发者快速将相机集成到机器人抓取、三维测量等项目中,实现开箱即用的3D视觉解决方案。

raspberrypi5的博客 640

Kafka的Offset(偏移量)详解

Kafka的Offset(偏移量)详解

qq_46112274的博客 4263

手把手教你用Apple Developer App完成苹果开发者账号注册(含证件验证失败解决方案)

本文详细指导如何通过Apple Developer App完成苹果开发者账号注册,特别针对证件验证失败问题提供解决方案。从准备工作到注册流程,再到验证失败的处理方法,帮助开发者顺利完成注册,避免常见错误。

moss5的博客 1160

STM32F4使用CUBEMX ADC定时采样+DMA

STM32、FFT、ADC、TIM

m0_62379750的博客 4223

20、offset 元素偏移量

20、offset 元素偏移量 1. offset 概述 offset 翻译过来就是偏移量, 我们使用 offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。 获得元素距离带有定位父元素的位置 获得元素自身的大小(宽度高度) 注意:返回的数值都不带单位 <body> <div class="father"> <div class="son"></div> </div> &lt

weixin_45998542的博客 1523

学习笔记:TF卡启动荔枝派Nano(全志F1C200S)

荔枝派Nano编译Kernel报错报错内容如下编译烧录 报错内容如下 No controllers found No ethernet found. 从这些报错我真没看从出啥问题,也是在网上找,说是没有找到flash,是因为淘宝买的板子更换了flash,需要在u-boot里面重新适配型号: 板子的型号为xt25f128,但是实际u-boot的配置里面不是需要重新更改: u-boot/arch/arm/dts/suniv-f1c100s-licheepi-nano.dts &spi0 { pin

热爱科技,物联,程序开发等 2133

JS | JS之元素偏移量 offset 系列属性详解

偏移量(offset dimension)是javascript中的一个重要的概念。涉及到偏移量的主要是offsetLeft、offsetTop、offsetHeight、offsetWidth这四个属性。当然,还有一个偏移参照——定位父级offsetParent。

青春木鱼的博客 2879

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

JavaScript:pc端网页特效--元素偏移量offset系列

offset翻译过来就是偏移量,我们使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。

2401_88226934的博客 1171

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Javascript【元素偏移量 offset 系列、元素滚动 scroll 系列】

Javascript【元素偏移量 offset 系列、元素滚动 scroll 系列】

m0_52896752的博客 958

JavaScript——元素偏移量offset系列&案例

offset翻译过来就是偏移量,我们使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。获得元素距离带有定位父元素的位置返回的数值都不带单位1.2offset系列常用属性。

shhghvvh的博客 861

JavaScript基础-元素偏移量 offset 系列

JavaScript基础-元素偏移量 offset 系列

qq_51626500的博客 790

元素偏移量 offset系列

1.1 offset 概述 offset 翻译过来就是偏移量,我们使用offset 系列相关属性可以动态的得到改元素的位置(偏移)、大小等。 获得元素距离带有定位父元素的位置 获得元素自身的大小(宽度高度) 注意:返回的数值都不带单位 offset 系列常用属性: offset系列属性 作用 element.offsetParent 返回作为该元素带有定位的父级元素 如果父级都没有定位则返回body element.offsetTop 返回元素相对带有定位元素上方的偏移 elem

weixin_45730243的博客 1649

元素偏移量offset系列/案例:获取鼠标在盒子内的坐标

PC端网页特效-offset系列 offset 即偏移量,使用offset 系列相关属性可以动态地得到该元素的位置(偏移)、大小等 获得元素距离带有定位父元素的位置 获得元素自身的大小(宽度高度) 注意:返回时都不带数值 offset系列: offset系列属性 作用 element.offsetParent 返回作为该元素带有定位的父级元素 如果父级都没有定位则返回body element.offsetTop 返回元素相对带有定位父元素上方的偏移 element.offsetL

weixin_50119334的博客 597

【JavaScript学习笔记】元素偏移量offset系列

​ ​ 获取URL参数 关键知识点: location对象 location.search substr split login.html index.html学习链接:https://www.bilibili.com/video/BV11t4y1i7ht?p=283

WXLeader的博客 382

BOM对象——元素偏移量offset系列

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分

chnnds的博客 326
上一篇: location对象
下一篇: 元素可视区 client系列
小白努力中...
博客等级 码龄6年 10粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值