最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序滑動控制自定義標(biāo)題顯示和隱藏效果

 更新時間:2026年03月02日 09:07:50   作者:Greg_Zhong  
文章介紹了如何在小程序中實現(xiàn)首頁標(biāo)題的顯示與隱藏功能,通過配置JSON、HTML和JS代碼,并利用小程序框架的滾動監(jiān)聽方法onPageScroll來實現(xiàn)滾動過程中標(biāo)題的動態(tài)顯示和隱藏效果,感興趣的朋友跟隨小編一起看看吧

需求:別人首頁有的,我們也要!
初始化隱藏標(biāo)題、下滑 100rpx 顯示、上滑回頂部隱藏

1.設(shè)置不使用系統(tǒng)標(biāo)題,json配置…

2.首頁html配置

3.首頁js配置

onPageScroll:是小程序框架【內(nèi)置的滾動監(jiān)聽方法】,框架會自動監(jiān)聽頁面滾動并觸發(fā)該方法;
執(zhí)行特點:滾動過程中高頻觸發(fā),入?yún)瑵L動距離 scrollTop;

4.wxml樣式配置,見下面完整代碼…

完整代碼

<!-- 自定義【顯隱】標(biāo)題:白色背景占滿整行 -->
<view class="custom-nav-bar" style="opacity: {{navOpacity}};">
  <view class="nav-title-wrap" style="top: {{menuCenterY}}rpx;">
    <text class="nav-title">首頁</text>
  </view>
</view>
<!-- 主要內(nèi)容 -->
<view class="page-content">
	<!-- 你原有的首頁內(nèi)容... -->
</view>

JS

// ========== 【新增屬性】標(biāo)題欄核心數(shù)據(jù) ==========
		navOpacity: 0, // 導(dǎo)航欄透明度(控制顯隱)
		scrollThreshold: 100, // 下滑100rpx觸發(fā)顯示
		menuCenterX: 0, // 膠囊中心X坐標(biāo)(rpx)
		menuCenterY: 0, // 膠囊中心Y坐標(biāo)(rpx)
    //=================【onload方法執(zhí)行...】
		// 第一步:優(yōu)先計算膠囊中心坐標(biāo)
		this.calcMenuCenter();
		// 第二步:初始化標(biāo)題隱藏
		this.setData({
			titleOpacity: 0,
			titleHeight: 0
		})
		//======================【核心2個方法】========
	// 核心:計算膠囊的水平+垂直中心坐標(biāo)(rpx)
	calcMenuCenter() {
		// 1. 獲取系統(tǒng)信息和膠囊原始坐標(biāo)(px)
		const systemInfo = wx.getSystemInfoSync();
		const menu = wx.getMenuButtonBoundingClientRect();
		const px2rpx = 750 / systemInfo.screenWidth; // px轉(zhuǎn)rpx比例
		// 2. 計算膠囊中心坐標(biāo)(px → rpx)
		// 水平中心:膠囊左坐標(biāo) + 膠囊寬度/2
		const menuCenterX_px = menu.left + menu.width / 2;
		// 垂直中心:膠囊上坐標(biāo) + 膠囊高度/2
		const menuCenterY_px = menu.top + menu.height / 2;
		// 3. 轉(zhuǎn)換為rpx并賦值(標(biāo)題將基于此坐標(biāo)居中)
		this.setData({
			menuCenterX: menuCenterX_px * px2rpx,
			menuCenterY: menuCenterY_px * px2rpx
		});
		// 調(diào)試日志(可刪除,用于驗證坐標(biāo))
		console.log('膠囊中心坐標(biāo)(rpx):', {
			x: this.data.menuCenterX,
			y: this.data.menuCenterY
		});
	},
	// 滾動監(jiān)聽:僅控制導(dǎo)航欄透明度(高度固定,不影響對齊)
	onPageScroll(e) {
		const systemInfo = wx.getSystemInfoSync();
		const px2rpx = 750 / systemInfo.screenWidth;
		// 滾動距離(rpx),容錯:最小為0
		const scrollTopRpx = Math.max(e.scrollTop * px2rpx, 0);
		// 計算透明度:0→1(下滑≥100rpx則完全顯示)
		let navOpacity = 0;
		if (scrollTopRpx >= this.data.scrollThreshold) {
			navOpacity = 1;
		} else if (scrollTopRpx > 0) {
			navOpacity = scrollTopRpx / this.data.scrollThreshold;
		}
		// 僅更新透明度,對齊坐標(biāo)不變
		this.setData({
			navOpacity
		});
	},

WXML

/* ========== 【新增】標(biāo)題欄核心樣式 ========== */
page {
  margin: 0;
  padding: 0;
  background-color: #f5f5f5;
  padding-top: 88rpx; /* 預(yù)留導(dǎo)航欄高度 */
}
/* 導(dǎo)航欄容器:固定頂部,高度覆蓋膠囊區(qū)域 */
.custom-nav-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 88rpx; /* 微信默認(rèn)導(dǎo)航欄高度 */
  background-color: #fff; /* 導(dǎo)航欄背景占滿整行(關(guān)鍵) */
  box-shadow: 0 2rpx 8rpx rgba(0,0,0,0.05);
  z-index: 999;
  transition: opacity 0.3s ease;
}
/* 標(biāo)題容器:占滿導(dǎo)航欄寬度,垂直對齊膠囊 */
.nav-title-wrap {
  position: absolute;
  left: 0;
  width: 100%; /* 占滿整行寬度 */
  height: 100%; /* 占滿導(dǎo)航欄高度 */
  transform: translateY(-50%); /* 垂直對齊膠囊 */
  background-color: #fff; /* 白色背景占滿整行 */
}
/* 標(biāo)題文字:水平居中 + 垂直居中 */
.nav-title {
  display: block;
  text-align: center; /* 水平居中 */
  line-height: 88rpx; /* 垂直居中(和導(dǎo)航欄高度一致) */
  font-size: 32rpx;
  font-weight: 600;
  color: #333;
}
/* 可選:測試內(nèi)容樣式 */
.page-content {
  /* padding: 0 30rpx; */
}
.item {
  height: 100rpx;
  line-height: 100rpx;
  border-bottom: 1rpx solid #eee;
  margin-bottom: 10rpx;
  font-size: 28rpx;
}

到此這篇關(guān)于微信小程序滑動控制自定義標(biāo)題顯示和隱藏效果的文章就介紹到這了,更多相關(guān)小程序滑動控制自定義標(biāo)題顯隱操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 前端安全之DOMPurify基礎(chǔ)安裝與用法

    前端安全之DOMPurify基礎(chǔ)安裝與用法

    這篇文章主要介紹了前端安全之DOMPurify基礎(chǔ)安裝與用法的相關(guān)資料,DOMPurify是防御XSS攻擊的HTML凈化庫,支持npm/yarn安裝及CDN引入,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-06-06
  • 微信小程序?qū)崿F(xiàn)錄音

    微信小程序?qū)崿F(xiàn)錄音

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)錄音,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • javascript常用經(jīng)典算法詳解

    javascript常用經(jīng)典算法詳解

    本文主要介紹了javascript七種常見算法:冒泡排序;插入排序;希爾排序;歸并排序;快速排序;選擇排序;奇偶排序。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • 詳解用async/await來處理異步

    詳解用async/await來處理異步

    這篇文章主要介紹了詳解用async/await來處理異步,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 微信小程序?qū)崿F(xiàn)評價功能

    微信小程序?qū)崿F(xiàn)評價功能

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)評價功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 微信小程序開發(fā)指南之圖片壓縮解決方案

    微信小程序開發(fā)指南之圖片壓縮解決方案

    在項目開發(fā)過程中遇到一個需要從小程序上傳圖片的需求,此需求實現(xiàn)起來并不難,下面這篇文章主要給大家介紹了關(guān)于微信小程序開發(fā)指南之圖片壓縮解決方案的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • js判斷文件格式及大小的簡單實例(必看)

    js判斷文件格式及大小的簡單實例(必看)

    下面小編就為大家?guī)硪黄猨s判斷文件格式及大小的簡單實例(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • js style動態(tài)設(shè)置table高度

    js style動態(tài)設(shè)置table高度

    設(shè)置table高度想必大家都會,直接在table標(biāo)簽中設(shè)置下不就行了嗎?這是靜態(tài)的,如果要動態(tài)設(shè)置你會嗎?下面的實例將教會大家
    2014-10-10
  • JavaScript 語句之常用 for 循環(huán)詳解

    JavaScript 語句之常用 for 循環(huán)詳解

    這篇文章主要介紹了JavaScript 語句之常用 for 循環(huán),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • js判斷當(dāng)前頁面用什么瀏覽器打開的方法

    js判斷當(dāng)前頁面用什么瀏覽器打開的方法

    這篇文章主要介紹了js判斷當(dāng)前頁面用什么瀏覽器打開的方法,需要的朋友可以參考下
    2016-01-01

最新評論

兴海县| 桃江县| 湖口县| 江安县| 肥乡县| 读书| 磐安县| 松江区| 买车| 轮台县| 无棣县| 吉木乃县| 阿拉善右旗| 张家港市| 康平县| 伊春市| 郴州市| 绥江县| 志丹县| 平安县| 内丘县| 四子王旗| 云梦县| 松滋市| 南靖县| 广安市| 青州市| 娄底市| 富锦市| 东乡| 土默特右旗| 安阳县| 新泰市| 肃宁县| 庆城县| 五华县| 邹城市| 长宁区| 于田县| 吉安县| 八宿县|