uni-app:获取元素宽高

news2024/11/25 15:34:36

效果

代码

这里我定义的宽为500px,高为200排序,控制台输出的结果是502,202。原因是我设置了上下左右宽度各为1px的border边框导致

核心代码分析

// const query = uni.createSelectorQuery();表示创建了一个选择器查询实例。通过这个实例,你可以使用不同的方法来选择页面中的 DOM 元素,并执行一系列操作,比如获取节点信息、监听节点属性变化等。
const query = uni.createSelectorQuery();
//选择id为mybox的元素节点。
query.select('#mybox').fields({
 
   //指定要获取的属性,这里设置为size: true表示要获取尺寸信息。
    size: true,
 
   //在回调函数(res) => {...}中处理查询结果。回调函数会接收一个res参数,其中包含了查询的结果信息。
}, (res) => {
 
   // 在回调函数中,通过res.width和res.height获取到查询元素的宽度和高度。
    const width = res.width;
    const height = res.height;
    console.log(width)
    console.log(height)
}).exec();

<template>
	<view>
		<view id="mybox">求我的宽高</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {

			};
		},
		onReady() {
			const query = uni.createSelectorQuery();
			//获取宽度
			query.select('#mybox').fields({
				size: true
			}, (res) => {
				const width = res.width;
				const height = res.height;
				console.log(width)
				console.log(height)
			}).exec(); 
		},
		methods: {

		},
	};
</script>
<style>
	#mybox {
		width: 500px;
		height: 200px;
		border: 1px solid black;
	}
</style>

注:如果获取到宽高之后还有别的操作,建议放在回调函数中进行,否则可能出现先执行别的操作,再成功获取宽高的问题

例如:下面的例子便是在回调函数中使用画布方法

//创建一个画布上下文对象,用于进行绘图操作。'firstCanvas'是一个指定的画布标识符,表示在页面上的哪个 <canvas> 元素上进行绘制。
var context = uni.createCanvasContext('firstCanvas')
var width = '';
const query = uni.createSelectorQuery();
//获取宽度
query.select('#firstCanvas').fields({
	size: true
}, (res) => {
	width = res.width;
	//获取到宽度进行绘制
	//绘制路径中的线条。
	context.setStrokeStyle("#aaaaff")
	// 设置线条的宽度为2个像素。
	context.setLineWidth(2)
	// 绘制横线
	context.beginPath(); // 开始路径绘制
	context.moveTo(width / 2, 0); // 将起点移动到 (0, 100)
	context.lineTo(width / 2, 50);
	context.stroke(); // 绘制线条
	var x1 = width / 4; // 第一个竖线的起点 x 坐标
	var y1 = 50; // 第一个竖线的起点 y 坐标
	var y2 = 30; // 短竖线的高度
	var horizontalLength = width / 2; // 横线的长度
	context.beginPath();
	context.moveTo(x1, y1 + y2); // 移动到第一个短竖线的起点
	context.lineTo(x1, y1); // 绘制第一个短竖线
	context.moveTo(x1 + horizontalLength, y1 + y2); // 移动到横线的右端下方
	context.lineTo(x1 + horizontalLength, y1); // 绘制第二个短竖线
	context.moveTo(x1, y1); // 移动到横线的左端下方
	context.lineTo(x1 + horizontalLength, y1); // 绘制横线/*  */
	context.stroke(); // 绘制线条
	// 将之前的绘图操作渲染到画布上。
	context.draw()
}).exec();

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

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

相关文章

MYSQL——二、理论基础

Mysql 一、什么是数据库二、数据库管理系统(DBMS)三、数据库与文件系统的区别四、数据库技术构成及发展史1、技术构成2、发展史 五、常见数据库1、关系型数据库2、ACID原则3、关系型数据库的优缺点4、非关系型数据库5、非关系数据库的优点6、DBMS支持的数据模型7、运维对数据库…

C#中的for和foreach的探究与学习

一:语句及表示方法 for语句: for(初始表达式;条件表达式;增量表达式) {循环体 }foreach语句: foreach(数据类型 变量 in 数组或集合) {循环体 }理解 1.从程序逻辑上理解,foreach是通过指针偏移实现的(最初在-1位置,每循环一次,指针就便宜一个单位),而for循环是通

mac有必要用清理软件吗?有哪些免费的清理工具

当我们谈到Mac电脑时&#xff0c;很多人都会觉得它比Windows系统更加稳定和高效&#xff0c;也更不容易积累垃圾文件。但实际上&#xff0c;任何长时间使用的操作系统都会逐渐积累不必要的文件和缓存。那么&#xff0c;对于Mac用户来说&#xff0c;有必要使用专门的清理软件吗&…

十九,镜面IBL--BRDF积分贴图

再回顾下镜面部分的分割求和近似法 现在关注第二部分 最后可化为 也就是说&#xff0c;这两部分积分可以获得F0的系数和F0的偏差。 这两个值可以存储到BRDF积分贴图的RG部分。void main() { vec2 integratedBRDF IntegrateBRDF(TexCoords.x, TexCoords.y); FragColor …

react create-react-app v5 从零搭建(使用 npm run eject)

前言&#xff1a; 好久没用 create-react-app做项目了&#xff0c;这次为了个h5项目&#xff0c;就几个页面&#xff0c;决定自己搭建一个&#xff08;ps:mmp 好久没用&#xff0c;搭建的时候遇到一堆问题&#xff09;。 我之前都是使用 umi 。后台管理系统的项目 使用 antd-…

嵌入式Linux应用开发-第七章-野火-正点原子IMX6ULL的LED驱动程序

嵌入式Linux应用开发-第七章-野火-正点原子IMX6ULL的LED驱动程序 野火IMX6ULL的LED驱动程序7.4 野火/正点原子 IMX6ULL的 LED驱动程序7.4.1 原理图7.4.1.1 野火 fire_imx6ull-pro开发板7.4.1.2 正点原子 Atk_imx6ull-alpha开发板 7.4.2 所涉及的寄存器操作7.4.2.1 野火 fire_im…

2011 款宝马 318i 车发动机怠速游车、抖动

故障现象 一辆2011款宝马318i车&#xff0c;搭载N46B20E发动机&#xff0c;累计行驶里程约为9.5万km。该车因发动机怠速游车、抖动在其他维修厂维修&#xff0c;维修人员更换了火花塞、点火线圈、空气流量传感器、VANOS&#xff08;可变气门正时系统&#xff09;电磁阀、气门升…

竞赛无人机搭积木式编程(四)---2023年TI电赛G题空地协同智能消防系统(无人机部分)

竞赛无人机搭积木式编程&#xff08;四&#xff09; ---2023年TI电赛G题空地协同智能消防系统&#xff08;无人机部分&#xff09; 无名小哥 2023年9月15日 赛题分析与解题思路综述 飞控用户在学习了TI电赛往届真题开源方案以及用户自定义航点自动飞行功能方案讲解后&#x…

delphi 11 安装失败

delphi 11 安装遇到如下图&#xff1a; 解决方法&#xff1a; 以管理员身份重新安装&#xff01;&#xff01;&#xff01; 以管理员身份重新安装&#xff01;&#xff01;&#xff01; 以管理员身份重新安装&#xff01;&#xff01;&#xff01; 管理员身份&#xff01;&…

什么是数学建模(mooc笔记)

什么是数学建模 前提&#xff1a;我们数学建模国赛计划选择C题&#xff0c;故希望老师的教学中侧重与C题相关性大的模型及其思想进行培训。之后的学习内容中希望涉及以下知识点&#xff1a; logistic回归相关知识点。如&#xff1a;用法、适用、限制范围等。精学数学建模中常…

Kafka:介绍和内部工作原理

展示Kafka工作方式的简单架构。 什么是Kafka&#xff1f;为什么我们要使用它&#xff1f;它是消息队列吗&#xff1f; 它是一个分布式流处理平台或分布式提交日志。 Kafka通常用于实时流数据管道&#xff0c;即在系统之间传输数据&#xff0c;构建不断流动的数据转换系统和构…

WebPack5高级使用总结(三)

WebPack5高级使用总结 1、提升开发体检1.1、SourceMap1.2、使用 2、提升打包构建速度2.1、HotModuleReplacement2.2、oneOf2.3、Include/Exclude2.4、Cache2.5、Thead 3、减少代码体积3.1、Tree Shaking3.2、Babel3.3、Image Minimizer 4、优化代码运行性能4.1、Code Split4.1.…

038:mapboxGL 旋转地图(rotateTo)

第038个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中旋转地图。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共68行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:https://xiaozhuan…

科技资讯|AirPods Pro基于定位控制的自适应音频功能

在接受 TechCrunch 媒体采访时&#xff0c;苹果高管 Ron Huang 和 Eric Treski 谈到了关于 AirPods Pro 自适应音频&#xff08;Adaptive Audio&#xff09;功能的轶事&#xff0c;曾考虑基于 GPS 信号来控制自适应音频级别。 Treski 表示在探索自适应音频功能初期&#xff0…

电脑技巧:推荐一款桌面增强工具AquaSnap

目录 一、软件介绍 二、功能介绍 2.1 窗口边缘停靠 2.2、 窗口平铺 2.3、 窗口对齐 2.4 窗口自动拉伸 2.5、同时移动多个窗口 2.6 、支持窗口置顶 2.7、 鼠标快捷方式 2.8、 键盘快捷键 三、软件特色 四、软件获取 一、软件介绍 AquaSnap(界面增强软件)是一款功能…

Vue中自定义实现类似el-table的表格效果实现行颜色根据数据去变化展示

主要使用div布局实现表格效果&#xff0c;并使用渐变实现行背景渐变的效果 页面布局 <div class"table-wrap"><div class"table-title"><divv-for"(item, index) in tableColumn":key"index":prop"item.prop&qu…

嵌入式Linux应用开发-第七章-IMX6ULL-QEMU的LED驱动程序

嵌入式Linux应用开发-第七章-IMX6ULL-QEMU的LED驱动程序 IMX6ULL-QEMU的 LED驱动程序7.5 IMX6ULL-QEMU的 LED驱动程序7.5.1 看原理图确定引脚及操作方法7.5.2 所涉及的寄存器操作7.5.3 写程序7.5.4 上机实验7.5.5 课后作业 IMX6ULL-QEMU的 LED驱动程序 7.5 IMX6ULL-QEMU的 LED驱…

简化任务调度与管理:详解XXL-Job及Docker Compose安装

在现代应用程序开发中&#xff0c;任务调度和管理是至关重要的一部分。XXL-Job是一个强大的分布式任务调度平台&#xff0c;它使得任务的调度和管理变得更加轻松和高效。本文将介绍XXL-Job的基本概念&#xff0c;并详细演示如何使用Docker Compose进行快速安装和配置。 什么是X…

【大模型和智能问答系统】

大模型和智能问答系统 大模型前的智能问答系统传统管道式架构存在的问题 大模型前的智能问答系统 大模型统一代指以ChatGPT为代表的&#xff0c;参数量相比以前模型有明显量级变化的生成模型。 智能问答系统&#xff0c;按照应用可以划分*任务型 *和 非任务型。 任务型问答系…

Java集成Onlyoffice以及安装和使用示例,轻松实现word、ppt、excel在线编辑功能协同操作,Docker安装Onlyoffice

安装Onlyoffice 拉取onlyoffice镜像 docker pull onlyoffice/documentserver 查看镜像是否下载完成 docker images 启动onlyoffice 以下是将本机的9001端口映射到docker的80端口上&#xff0c;访问时通过服务器ip&#xff1a;9001访问&#xff0c;并且用 -v 将本机机/data/a…