首页 > 其他分享 >关于uniapp设置头部固定,内容区域滚动,不同手机显示表现不一致的问题

关于uniapp设置头部固定,内容区域滚动,不同手机显示表现不一致的问题

时间:2023-12-25 11:01:18浏览次数:41  
标签:uniapp 滚动 高度 header 区域 内容 头部 margin

问题

若固定了头部元素区域高度,比如固定的rpx,vh等,在其他手机中可能出现部分空白,导致界面不协调。我的解决方案是自动计算出头部区域元素的高度,让内容区域自动设置外边距

方案

使用了 unaipp提供的 uni.createSelectorQuery() 方法来获取头部区域的高度。首先,通过 ref="header" 将头部区域标记为 header,然后使用 uni.createSelectorQuery() 来获取其高度信息。获取到高度后,将其设置到 headerHeight 变量中,并通过 :style 绑定到内容区域的 margin-top 上。

这样,在页面加载后,头部区域的高度会自动应用到内容区域的 margin-top 上,实现头部固定且内容区域自适应的效果。

<template>
  <view>
    <view class="header" ref="header">
      <!-- 这里放置头部内容 -->
    </view>
    <view class="content" :style="{ marginTop: headerHeight + 'px' }">
      <!-- 这里放置内容 -->
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      headerHeight: 0,
    };
  },
  mounted() {
    this.setHeaderHeight();
  },
  methods: {
    // 获取头部高度,设置内容区域的 margin-top
    setHeaderHeight() {
      const header = this.$refs.header;
      if (header) {
        uni.createSelectorQuery()
          .in(this)
          .select('.header')
          .boundingClientRect((rect) => {
            if (rect) {
              this.headerHeight = rect.height;
            }
          })
          .exec();
      }
    },
  },
};
</script>

<style>
/* 其他样式 */
</style>

 

标签:uniapp,滚动,高度,header,区域,内容,头部,margin
From: https://www.cnblogs.com/dslx/p/17925678.html

相关文章

  • 【UniApp】-uni-app-处理项目输入数据(苹果计算器)
    前言上一篇文章完成了项目的基本布局,这一篇文章我们来处理一下项目的输入数据项目的输入数据主要是通过按键来输入的,所以我们需要对按键进行处理那么我们就来看一下uni-app-处理项目输入数据步入正题在上篇文章中,我在data中定义了一个buttons每个元素中,有一个func......
  • 【UniApp】-uni-app-项目实战页面布局(苹果计算器)
    前言经过前面的文章介绍,基本上UniApp的内容就介绍完毕了那么从本文开始,我们就开始进行一个项目的实战这次做的项目是苹果计算器,这个项目的难度不是很大,但是也不是很简单,适合练手创建项目打开HBuilderX,点击左上角文件->新建->项目:搭建基本布局项目创建完毕之......
  • uniapp框架——初始化vue3项目(搭建ai项目第一步)
    文章目录⭐前言......
  • 一个简单的QML滚动字幕实现
    一个简单的QML滚动字幕实现目录结构configparam.h#ifndefCONFIGPARAM_H#defineCONFIGPARAM_H#include<QObject>#include<QTypeInfo>classconfigParam:publicQObject{Q_OBJECTQ_PROPERTY(QStringbackGroundColorREADgetBackGroundColorNOTIFYba......
  • [转载]使用GoEasy在uniapp下实现实时音视频通话附关键代码
    GRTC(GoEasyReal-TimeCommunication)是GoEasy推出的新功能,用于协助开发者在uniapp下轻松实现一对一和多人场景下的实时音视频通话功能。集成步骤1.配置云厂商音视频服务GRTC功能依赖于云厂商的音视频服务,目前已集成七牛云音视频服务(每月免费5000分钟),并计划未来支持更多云厂......
  • Uniapp开发:HBuilder开发工具从Git引入的项目文件修改后不区分显示标识的问题
    一、问题如下使用的HBuilderX版本:3.98Git插件已安装:项目结构如下:右击项目目录,在git命令中-》检查已修改,可以发现还是能检索到修改过的文件:文件是有修改过的,但是在上图中没有任何的修改标识,这些文件也没有添加到.gitignore配置中。......
  • [转载]使用GoEasy在uniapp下实现实时音视频通话附关键代码
    GRTC(GoEasyReal-TimeCommunication)是GoEasy推出的新功能,用于协助开发者在uniapp下轻松实现一对一和多人场景下的实时音视频通话功能。集成步骤1.配置云厂商音视频服务GRTC功能依赖于云厂商的音视频服务,目前已集成七牛云音视频服务(每月免费5000分钟),并计划未来支持更多云厂......
  • uniapp返回上一个页面
    在UniApp中返回上一个页面,你可以使用 uni.navigateBack() 方法来实现。uni.navigateBack() 方法用于导航返回上一页,你可以传递一个可选的参数来指定返回的步数。如果不传递参数,则默认返回上一页。下面是一个示例代码,演示如何在UniApp中返回上一个页面:javascript复制代码......
  • 【UniApp】-uni-app-自定义组件
    前言经过上个章节的介绍,大家可以了解到uni-app-网络请求的基本使用方法那本章节来给大家介绍一下uni-app-自定义组件的基本使用方法原本打算是直接写项目的,在写项目之前还有个内容需要我在码一篇文章,所以就先码这篇文章了本章节的内容比较简单,大家可以快速的过一遍,然后在......
  • uniapp开发——未登录登录失效页面登录后页面回调的处理
    刚开始默认沿用了前边小程序的做法,即在单击事件或者onHide函数中缓存标识,onShow中读取标识,对必要的业务逻辑进行重新请求。具体代码如下:微信小程序登录后页面回调的处理方案:1.缓存回调刷新标识:单击事件中设置:methods:{onSubmit(){this.setData({i......