uni-app:js修改元素样式(宽度、外边距)

效果

代码

1、在<view>元素上添加一个**ref属性** ,用于在JavaScript代码中获取对该元素的引用:<view ref="myView" id="mybox"></view>

2、获取元素引用 :const viewElement = this.refs.myView.el;

3、修改元素宽度:viewElement.style.width = '100px';

4、修改元素左外边距:viewElement.style.marginLeft = '20px';

html 复制代码
<template>
	<view>
		<view ref="myView" id="mybox"></view>
	</view>
</template>

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

			};
		},
		mounted() {
		    // 获取元素引用
		    const viewElement = this.$refs.myView.$el;
		    // 修改元素宽度 
		    viewElement.style.width = '100px';
			// 修改元素左外边距
			viewElement.style.marginLeft = '20px';
		},
		methods: {

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

扩展

这种情况可能运行到手机端会出现拥堵,无法正常运行,现举实例解决手机端出现的问题

效果

代码

html 复制代码
<template>
	<view>
		<view id="test" ref="test">这是一个元素</view>
		<view id="text" :style="{ marginTop: marginTop + 'px' }">被修改内容</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				query: null, // 声明查询选择器对象
				marginTop: 0, // 子元素的外边距
			};
		},
		onReady() {
			this.query = uni.createSelectorQuery(); // 创建查询选择器对象
			this.query
				.select('#test')
				.fields({
					size: true
				}, (res) => {
					const parentHeight = res.height;
					console.log('父元素的高度:' + parentHeight);
				})
				.exec(
					this.query
					.select('#text')
					.fields({
						size: true
					}, (res) => {
						const sontHeight = res.height;
						console.log('子元素的高度:' + sontHeight);
						const marginTop = sontHeight / 4; 
						this.marginTop = marginTop;
					})
				);
		},
	};
</script>

<style>
	#test {
		border: 1px solid black;
		height: 300px;
	}

	#text {
		border: 1px solid black;
		height: 200px;
	}
</style>
相关推荐
LHX sir18 分钟前
什么是UIOTOS?
前端·前端框架·编辑器·团队开发·个人开发·web
Gazer_S27 分钟前
【前端状态管理技术解析:Redux 与 Vue 生态对比】
前端·javascript·vue.js
小光学长39 分钟前
基于Vue的图书馆座位预约系统6emrqhc8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
居安思危_Ho43 分钟前
RK平台Uniapp自启动缓存问题解决
android·缓存·uni-app·rk平台·uniapp资源文件
Y学院1 小时前
vue的组件通信
前端·javascript·vue.js
患得患失9491 小时前
【ThreeJs】【伪VR】用 Three.js 实现伪 VR 全景看房系统:低成本实现 3D 级交互体验
javascript·3d·vr
PairsNightRain1 小时前
React Concurrent Mode 是什么?怎么使用?
前端·react.js·前端框架
小岛前端1 小时前
React 剧变!
前端·react.js·前端框架
teeeeeeemo1 小时前
Webpack 模块联邦(Module Federation)
开发语言·前端·javascript·笔记·webpack·node.js
岁月宁静2 小时前
AI聊天系统 实战:打造优雅的聊天记录复制与批量下载功能
前端·vue.js·人工智能