<view class="main" style="height: {{mainHeight}}">
<scroll-view id="scrollView" style="height: {{scrollHeight}}" bindscroll="scroll" scroll-y="true" scroll-with-animation="true" scroll-into-view="{{toView}}">
JS:
data: {
mainHeight: '100%',
scrollHeight: '100%',
},
onReady: function () {
wx.createSelectorQuery()
.select('.main')
.boundingClientRect((res) => {
console.log(res);
this.setData({
mainHeight: res.height + 'px',
scrollHeight: res.height + 'px',
});
})
.exec();
},
----------------------------------------------------------------------
因为我这边用的是vantweappUI,想用他的Sticky 粘性布局(当某个元素滑动到可视区域顶部时,悬浮置顶),
但是还有锚点功能,这个还是scrollview的比较友好,想用锚点就需要指定scrollview和他的上级父元素必须指定高度,这样高度就没法自适应(view里面内容有点多),高度写死后粘性布局就失效了,
动态绑定style在onready内获取高度然后重新赋值,缺不生效
应该是你this的作用域的问题导致没有正确赋值
可以let _this = this;
这边使用_this尝试下
若有帮助请帮忙点个"有用"谢谢👇👇
再onReady里加consloe.log(111111) 看看有打印么 估计是onReady没被调用 可以写道onshow 或onload
mainHeight: res.height + 'px',
scrollHeight: res.height + 'px',
});
你这里的this.setData不对吧? onRead方法首行应该加个 var that = this 吧 然后that.setData
你直接给个可运行的代码片段不好吗?
https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html