微信小程序scroll-view中的坑(因为动态设置高度导致无法下拉)
感谢
https://blog.csdn.net/zhoulib__/article/details/107517651
微信小程序中使用scroll-view时,一般都是需要自行设置高度,因为不设置的话,显示的老小了,但是设置高度的话给一个定值也不合适,一般在移动端上面,界面通常是正好铺面当前的屏幕的大小,代码
主要使用 calc这个计算 css
首先获取当前scroll-view组件在屏幕中位置
像这样
data: { top:'', }, let query = wx.createSelectorQuery() query.select('.scroll-view').boundingClientRect((e) => { // console.log(e) this.setData({ top:e.top }) }).exec()
scroll-view组件
<scroll-view class="scroll-view" style="height:calc(100vh - {{top}}px);white-space:normal" scroll-x="{{false}}" refresher-enabled refresher-background="#F6F6F6" bindrefresherrefresh="pull" refresher-triggered="{{triggered}}" bindscrolltolower="scrolltolower" scroll-y > </scroll-view>
这样写的话会遇到一个scroll-view无法下拉的问题(因为top的设置是异步的,还有微信小程序的组件总是有这些奇奇怪怪的问题,因为是异步更新了组件所以可能会导致一些奇奇怪怪的问题,所以要条件渲染,在获取到top之后再渲染scroll-view,防止scroll-view的重复渲染,让整个流程看上去像是同步的,而不是异步的)
<view class="scroll-view"> <scroll-view wx:if="{{top}}" style="height:calc(100vh - {{top}}px);white-space:normal" scroll-x="{{false}}" refresher-enabled refresher-background="#F6F6F6" bindrefresherrefresh="pull" refresher-triggered="{{triggered}}" bindscrolltolower="scrolltolower" scroll-y > </scroll-view> </view>
破罐子互摔
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了