微信小程序 获取节点的位置和信息+设置滚动条的位置

微信小程序获取节点的位置和信息+设置滚动条的位置
1.

wx.createSelectorQuery().select('#scroll').boundingClientRect(function(rect){
          console.log(rect.top)      // 距离顶部滚动条位置
          
          let stop = rect.top;
          if(that.data.stop == 0) {
            that.setData({ stop: stop })
          }
          
          // 设置滚动条的位置
          wx.pageScrollTo({ scrollTop: Number(stop)})
        }).exec()
let query = wx.createSelectorQuery()
      query.select('#scroll').boundingClientRect()
      query.selectViewport().scrollOffset()
      query.exec(function (res) {
	    console.log(res)
	    // res[0].top       // 节点的上边界坐标
	    // res[1].scrollTop // 显示区域的竖直滚动位置
	    
        let top = res[0].top;
        let scrollTop = res[1].scrollTop;
        if(scrollTop != 0) { top = Number(top + scrollTop) }
        // 设置滚动条的位置
        wx.pageScrollTo({ 
        	scrollTop: Number(top) -90
         })
      })
### 修改微信小程序 `scroll-view` 组件的滚动条样式 #### 使用 CSS 隐藏默认滚动条设置自定义样式 对于 Android 设备上的横向滚动条问题,可以通过特定的选择器来隐藏默认滚动条: ```css ::-webkit-scrollbar { width: 0; height: 0; color: transparent; display: none; } ``` 为了进一步增强用户体验,在某些情况下可能希望完全移除或调整滚动条外观。此时可以利用 `show-scrollbar` `enhanced` 属性组合[^2]。 当启用了 `enhanced` 特性之后,还可以通过 JavaScript 动态改变滚动条的状态以及位置等属性。不过需要注意的是,这些操作依赖于 `ScrollViewContext` 对象,该对象需借助 `wx.createSelectorQuery()` 获取节点信息后创建。 #### 实现自定义滚动指示器 如果想要更精细地控制滚动条的表现形式,则可考虑构建一个可视化的进度指示器作为替代方案。下面是一个简单的例子展示如何结合数据绑定机制实现这一功能[^3]: ```html <!-- 自定义滚动条 --> <scroll-view class="my-grid" scroll-x="true" bindscroll="handleScroll"> <!-- 内容区域 --> </scroll-view> <view class="custom-scroll-bar"> <view class="progress" style="width: {{ progress }}%;"></view> </view> ``` 配合页面逻辑处理函数 `handleScroll(e)` 来更新滚动百分比 `progress` 变量值,从而达到同步显示的效果。这种方式不仅能够提供更加美观直观的操作反馈,同时也规避了不同平台间原生滚动条样式的差异带来的兼容性挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值