quasar v2.x在微信xweb内核出现Layout的 min-height计算错误的问题

发布时间 2023-04-19 03:47:36作者: zjhgx

在微信中搜索hjdang, 如果数量很少,会出现一段空白,原因是原先有数据时Layout的高度已经被拉长了,但搜索后数据变小,但Layout的min-height计算时不知道出了什么问题,没有变化,所以出现了空白的区域。我记得以前这个问题是没有的,有可能是微信升级后内置浏览器内核改变的原因。经测试,Mac上的chrome,Mac上的微信开发工具,Android上的chrome上,内置浏览器上,iOS上的微信上都不会出现这个问题。唯一出问题的是Android的微信,QQ,那只能猜测是因为微信,QQ浏览器的内核问题了。

要修改这个问题,只要在Layout上自定义一个 style="min-height: 100vh",然后在q-page上加一个:style-fn="myTweak" 方法修改默认的高度计算

  <q-layout view="hHh lpR fFf" class="bg-primary" style="min-height: 100vh">
  <q-page class="bg-primary" :style-fn="myTweak">

    myTweak(offset) {
      // "offset" is a Number (pixels) that refers to the total
      // height of header + footer that occupies on screen,
      // based on the QLayout "view" prop configuration

      // this is actually what the default style-fn does in Quasar
      return { minHeight: offset ? `calc(100vh - ${offset}px)` : '100vh' };
    },

其实计算q-page的min-height这个myTweak是默认的计算方法,如果只加了q-layout的style格式还是乱的,必须把q-page的也改了。我猜测是计算的时机哪里出了问题,导致计算是依据变化前的窗体高度来计算的。