
如何在 vue 3 中获取元素的 margin-top 值
问题描述:
在 vue 3 中,需要动态获取 dom 元素的 margin-top 值以实现动画效果。如何实现这一目标?
解决方案:
立即学习“前端免费学习笔记(深入)”;
Vue 3 组合式 API 与 最佳实践,涵盖代码组织、useXxx 模式、组合式函数设计、Store 集成、响应式优化及功能抽取。
确保元素已渲染完毕
在获取元素的 margin-top 值之前,需要确保目标元素已经渲染完毕。这可以通过使用 mounted 生命周期钩子或 nexttick 函数来实现。
获取 margin-top 值
获取 margin-top 值的方法如下:
- composition api:
<div ref="targetdom"></idv>
// 这里不传值,变量名要等于 ref
const targetdom = ref<htmlelement>()
function getmargintop(): string {
const styles = getcomputedstyle(targetdom.value);
return styles.getpropertyvalue('margintop');
}- options api:
<div ref="targetdom"></idv>
export default {
mounted() {
const targetDom = this.$refs.targetDom as HTMLElement;
const marginTop = window.getComputedStyle(targetDom).marginTop;
}
};

















