uniapp和vue如何获取屏幕或盒子内容的宽高

 更新时间:2024年02月23日 14:59:04   作者:聪明的墨菲特 (o.O)?  
在实际开发中我们会遇到不确定高度的情况,下面这篇文章主要给大家介绍了关于uniapp和vue如何获取屏幕或盒子内容的宽高,文中通过代码介绍的非常详细,需要的朋友可以参考下

获取到屏幕的宽度和高度,可以根据需要将这些值用于布局、样式或其他操作。

一、获取屏幕宽高

1.uniapp

使用uni.getSystemInfo()方法来获取系统信息,包括屏幕的宽度和高度。(注意:uni.getSystemInfo()方法是一个异步方法,因此你需要在success回调函数中处理获取到的屏幕尺寸数据。)

methods: {
  getScreenSize() {
    uni.getSystemInfo({
      success: (res) => {
        const screenWidth = res.windowWidth; // 屏幕宽度,单位为px
        const screenHeight = res.windowHeight; // 屏幕高度,单位为px
        console.log('屏幕宽度:', screenWidth);
        console.log('屏幕高度:', screenHeight);
      },
    });
  },
},

 在需要获取屏幕宽度和高度的地方,调用getScreenSize()方法即可。

mounted() {
  this.getScreenSize(); // 在组件或页面加载完成后调用获取屏幕尺寸的方法
},

2.vue

使用window.innerWidth和window.innerHeight获取屏幕的宽高:

const screenWidth = window.innerWidth; // 屏幕宽度
const screenHeight = window.innerHeight; // 屏幕高度

二、获取盒子内容宽高

1.uniap

使用uni.createSelectorQuery()方法来创建一个选择器查询对象,来获取盒子内容撑起的宽度和高度。(注意:uni.createSelectorQuery()方法是一个异步方法,因此你需要在boundingClientRect回调函数中处理获取到的盒子尺寸数据。)

methods: {
  getBoxSize() {
    uni.createSelectorQuery()
      .select('.box') // 选择你要获取尺寸的盒子元素,这里假设盒子元素的class为box
      .boundingClientRect((rect) => {
        const boxWidth = rect.width; // 盒子的宽度,单位为px
        const boxHeight = rect.height; // 盒子的高度,单位为px
        console.log('盒子宽度:', boxWidth);
        console.log('盒子高度:', boxHeight);
      })
      .exec();
  },
},

 在需要获取盒子宽度和高度的地方,调用getBoxSize()方法即可。

mounted() {
  this.getBoxSize(); // 在组件或页面加载完成后调用获取盒子尺寸的方法
},

2.vue

在Vue组件中,通过this.$refs访问ref属性,并使用$el获取盒子元素的宽高:

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

const boxWidth = this.$refs.box.$el.offsetWidth; // 盒子宽度
const boxHeight = this.$refs.box.$el.offsetHeight; // 盒子高度

console.log(boxWidth,boxHeight);

总结 

到此这篇关于uniapp和vue如何获取屏幕或盒子内容宽高的文章就介绍到这了,更多相关uniapp和vue获取屏幕内容宽高内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue3中如何使用v-model高级用法参数绑定传值

    Vue3中如何使用v-model高级用法参数绑定传值

    本文给大家介绍Vue3中使用v-model高级用法参数绑定传值的相关知识,包括单个输入框传值和多个输入框传值,一个组件接受多个v-model值,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2023-10-10
  • 在Vue中是如何封装axios

    在Vue中是如何封装axios

    这篇文章主要介绍在Vue中是如何封装axios的相关资料,axios的封装主要是帮助我们简化代码和利于后期的更新维护,感兴趣的小伙伴可以和小编一起来阅读下面文章的具体内容
    2021-10-10
  • Vue3 页面,菜单,路由的使用

    Vue3 页面,菜单,路由的使用

    这篇文章主要介绍了Vue3之 页面,菜单,路由的使用,文章围绕Vue3页面,菜单,路由相关资料展开详细内容,需要的朋友可以参考一下
    2021-11-11
  • 基于vue+axios+lrz.js微信端图片压缩上传方法

    基于vue+axios+lrz.js微信端图片压缩上传方法

    这篇文章主要介绍了基于vue+axios+lrz.js微信端图片压缩上传方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • vue实现自定义多选与单选的答题功能

    vue实现自定义多选与单选的答题功能

    这篇文章主要介绍了使用vue实现自定义多选与单选的答题功能,vue组件中在表单方面提供了一个v-model指令,非常好用,具体实现过程大家跟随脚本之家小编一起看看吧
    2018-07-07
  • vue axios 封装请求拦截多次弹窗的问题及解决

    vue axios 封装请求拦截多次弹窗的问题及解决

    这篇文章主要介绍了vue axios 封装请求拦截多次弹窗的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Pinia介绍及工作原理解析

    Pinia介绍及工作原理解析

    这篇文章主要为大家介绍了Pinia介绍及工作原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • VUE实现密码验证与提示功能

    VUE实现密码验证与提示功能

    这篇文章主要为大家详细介绍了VUE实现密码验证与提示功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Vue3快速diff算法的处理过程

    Vue3快速diff算法的处理过程

    传统的 DOM 更新方法会在有新旧子节点时卸载旧节点并挂载新节点,这种方法没有考虑到节点的复用可能性,diff 算法通过比较新旧节点的差异来复用节点,从而优化性能,本文给大家介绍了Vue3快速diff算法的处理过程,需要的朋友可以参考下
    2024-05-05
  • 详解vue项目打包后通过百度的BAE发布到网上的流程

    详解vue项目打包后通过百度的BAE发布到网上的流程

    这篇文章主要介绍了将vue的项目打包后通过百度的BAE发布到网上的流程,主要运用的技术是vue+express+git+百度的应用引擎BAE。需要的朋友可以参考下
    2018-03-03

最新评论