如何获取到页面滚动的位置后修改自定义组件的样式?
发布于 7 年前 作者 gongxiuying 506 次浏览 来自 问答

我知道可以用

//在逻辑层 page.js 里
onPageScroll(e) {
   //获取页面滚动的位置
   this.setData({pageTop: e.scrollTop})
},

但是疯狂绑定,性能会很不好。

所以就想使用 WXS,借由在wxml文件里使用

//page.wxml
<wxs module="test" src="./test.wxs"></wxs>
<page-meta bindscroll="{{test.onPageScroll}}" />

少了视图和逻辑层的通信 性能就会有所提升

但是这样还是在page里做的,不知道怎么跟自定义组件通信,我想修改的是 自定义组件“内”的样式,能做得到吗?

ps. 这个场景很常见,比如导航栏是自定义组件的,当页面往下滚动时,就把导航栏往上推;等到用户往上滑时,再把导航栏推回来。

1 回复

就你最后一句话,可以用css控制啊,只要判断用户是上划还是下滑,隐藏或者显示不就行了

回到顶部