页面设计是这样的
在这里插入图片描述
页面滚动是这样的效果:导航栏标题被遮挡
在这里插入图片描述
最后实现到那个滚到一定区域后有背景色
在这里插入图片描述

  onPageScroll: function (e) { // 获取滚动条当前位置
    if (e.scrollTop > 50) {
      this.data.rgb == 1 ? '' : this.setData({
        rgb: 1
    } else {
      this.data.rgb == 0 ? '' : this.setData({
        rgb: 0

wxml页面

我选的是第二种实现方式,相对来说就是比较简单的 实现原理就是利用banner过渡事件的event值的dx属性计算出一个0~1的比例值,然后用计算出的比例值再算出新的rgb色值 下面上代码: (我当前写的是小程序版本,H5 js可以直接复用只需改一下wxml部分) WXML部分
微信小程序页面背景色默认是白色,但可以自主更改。 如果想所有页面背景色都同时一种颜色,只需在app.wass里修改,如果想每个页面背景色都不一样,则需要在每个页面对应的.wass文件里修改。 一开始犯了一个错误,以为在json文件里的window中修改backgroundColor,如 "window": { "backgroundColor": "#eeeeee", wx.setNavigationBarColor({ frontColor: '#ffffff', // 必写项【该字体颜色仅支持 #ffffff 和 #000000 】 backgroundColor: '#25BDCE', // 传递的颜色值【仅支持有效值为十六进制颜色】 animation: { // 可选项 dura..
https://developers.weixin.qq.com/miniprogram/dev/api/ui/window/wx.onWindowResize.html 监控窗口的大小时候发生了变化 <button bindtap="window">窗口监听操作</button> </view> // 获取滚动距离scrollTop const scrollTop = e.detail.scrollTop; // 设置滚动距离阈值,超过该值则将导航栏背景颜色设为白色,否则设为透明 const threshold = 100; // 获取导航栏节点 const navBar = uni.createSelectorQuery().select('.nav-bar'); if (scrollTop > threshold) { navBar.css('background-color', '#ffffff'); navBar.css('color', '#000000'); } else { navBar.css('background-color', 'transparent'); navBar.css('color', '#ffffff'); onPageScroll(e) { this.onScroll(e); onReachBottom() { // 页面滚动到底部的时候触发加载更多 </script> <style> /* 这里是页面样式 */ </style> 在上述代码中,通过监听页面滚动事件`onPageScroll`和调用`onScroll`方法来实现改变导航栏样式的效果。根据滚动距离设置导航栏的背景颜色,当滚动距离超过阈值时,将导航栏背景颜色设为白色,否则设为透明。请注意,需要将`.nav-bar`替换为你实际使用的顶部导航栏的class或id。 这样就可以实现滚动页面顶部导航栏的透明变白色的效果了。希望能对你有所帮助!如有更多问题,请随时提问。