原生小程序WEUI导航背景随滚动条渐变色

原理:根据小程序提供的滚动条 API 事件,进行不断检测滚动值,然后通过滚动值,进行计算,将rgba 的透明度由透明改变成不透明,最终实现 渐变的效果 。

wxml 文件


	<!-- 导航栏 -->
	<mp-navigation-bar class="mp-navigation" show="{{true}}" animated="{{true}}" back="{{false}}" color="#333" background="rgba(0, 0, 0,{{scrollTop / 400 > 0.9 ? 1 : scrollTop / 400}})">
		<view slot="left" class="mp-navigation-bar-logo">
            左侧箭头
		</view>
	</mp-navigation-bar>

index.js文件 

import { throttle } from "../../utils/util.js"  // 节流函数
Page({
	/**
	 * 页面的初始数据
	 */
	data: {
		scrollTop: 0
	},

	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function () { },

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () { },

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () { },
    // 通过节流事件将 滚动条频繁的事件触发,改成每隔一段事件进行触发。防止多次触发
	onPageScroll: throttle(function(e) {
		if (e.scrollTop>0) {
			this.setData({
				state: false,
				scrollTop: e.scrollTop
			})
		}else {
			this.setData({
				state: true,
				scrollTop: e.scrollTop
			})
		}
	}, 100)
	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	// onPullDownRefresh: function () {},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	// onReachBottom: function () {},

	/**
	 * 用户点击右上角分享
	 */
	// onShareAppMessage: function () {}
});

节流函数,可以自己新建一个 文件专门用于存储这种工具函数,方便其他模块进行使用。 


/*函数节流*/
export function throttle(fn, wait) {
  var timer = null;
  var last = null;
  return function () {
    var context = this;
    var args = arguments;
    last = [...args]
    if (!timer) {
      timer = setTimeout(function () {
        fn.call(context, ...last);
        timer = null;
        // last = null;
      }, wait)
    }
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清云随笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值