• 【Uniapp小程序】自定义导航栏uni-nav-bar滚动渐变色


    效果图

    在这里插入图片描述

    在这里插入图片描述

    新建activityScrollTop.js作为mixins

    export default {
      data() {
        return {
          navBgColor: "rgba(0,0,0,0)", // 初始背景颜色为完全透明
          navTextColor: "rgba(0,0,0,1)", // 初始文字颜色
        };
      },
      onPageScroll(e) {
        // 设置背景
        const newAlpha = Math.min((e.scrollTop / 100) * 1, 1);
        this.navBgColor = `rgba(${this.shadeBackground},${newAlpha})`;
        // 设置文字
        const progress = Math.min(e.scrollTop, 255) / 255;
        const [r, g, b] = this.shadeTextColor.split(",").map(Number);
        const newTextRgb = Math.min(e.scrollTop * 5, 255);
        const newRgb = [r, g, b].map((targetValue) => {
          return Math.min(newTextRgb + (targetValue - newTextRgb) * progress, 255);
        });
        this.navTextColor = `rgba(${newRgb.join()},1)`;
      },
    };
    

    使用方法

    第一步,引入上方js

    import activityScrollTop from "../../js/activityScrollTop";
    export default {
      mixins: [activityScrollTop],
    }
    

    第二步:
    关键:backgroundColor和color

    <uni-nav-bar
      :leftIcon="图标"
      :border="false"
      @clickLeft="方法名"
      :backgroundColor="navBgColor"
      fixed
      statusBar
      :color="navTextColor"
      title="活动详情"
    ></uni-nav-bar>
    

    第三步:
    data

    // 渐变导航背景颜色
    shadeBackground: "254,181,89",
    // 渐变导航的文字颜色
    shadeTextColor: "255,255,255",
    

    看效果即可!

    当然可能对性能有影响,可以改成如下方式:

    mounted() {
      this.observer = uni.createIntersectionObserver(this);
      this.observer
        .relativeToViewport({ bottom: 距离底部的距离 })
        .observe("需要监听的元素", (res) => {
          if (res.intersectionRatio > 0) {
            显示
          } else {
            隐藏
          }
        });
    },
    

    在这里插入图片描述
    感谢你的阅读,如对你有帮助请收藏+关注!
    只分享干货实战精品从不啰嗦!!!
    如某处不对请留言评论,欢迎指正~
    博主可收徒、常玩QQ飞车,可一起来玩玩鸭~

  • 相关阅读:
    时序预测 | MATLAB实现RBF径向基神经网络时间序列多步预测
    Jackson ImmunoResearch免疫球蛋白类分析方案
    一个案例总结 MongoDB 与 Redis 主从同步问题
    力扣刷题记录(Java)(三)
    CSDN竞赛4期题解
    Linux系统进程与进程间通信
    《动手学深度学习 Pytorch版》 10.7 Transformer
    旁路openwrt启用ipv6
    moudo网络库剖析
    程序媛小姐姐直播讲解第七周PHP上机作业
  • 原文地址:https://blog.csdn.net/yasyList/article/details/139341346