|
起因是有個客戶買了uniapp生成微信小程序的插件
他用的觸屏模板的頂部導(dǎo)航不是fixed在頂部,而是會隨著頁面上滑而上滑(官方默認的也是這樣)
在瀏覽器里系統(tǒng)會提供返回按鈕,但是小程序系統(tǒng)是沒有的。
雖然這個不是我服務(wù)范圍內(nèi)的事情,但是他態(tài)度很好,所以就順手幫忙做了,發(fā)出來也給有需要的人分享下。
這次直接使用ai寫代碼
提問:
我需要在 Discuz!X 論壇的觸屏版(模板目錄為 template/zaoer_qwap/touch/)的所有頁面右下角添加三個懸浮按鈕。
這三個按鈕分別是: 返回上一頁 返回論壇首頁 返回當前頁面頂部(只在頁面滾動超過一屏幕高度時顯示)
使用字體圖標顯示,需要引入字體庫。
按鈕樣式盡量簡潔,并添加一些基本的懸浮動畫效果。
AI回答:
好的,根據(jù)你的需求,我們需要修改的文件是 `template/zaoer_qwap/touch/common/header.htm`。以下是完整的修改代碼:
1. 在文件中找到 `header` 并在下一行添加以下代碼,引入 Font Awesome 字體庫:
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w==" crossorigin="anonymous" referrerpolicy="no-referrer" />
復(fù)制代碼
2. 在文件末尾,添加以下 HTML 代碼:
- <div class="float-buttons">
- <a href="javascript:history.back();" class="float-btn back-btn" title="返回上一頁"><i class="fas fa-arrow-left"></i></a>
- <a href="$_G['siteurl']" class="float-btn home-btn" title="返回首頁"><i class="fas fa-home"></i></a>
- <a href="#" class="float-btn top-btn" title="返回頂部" style="display:none;"><i class="fas fa-arrow-up"></i></a>
- </div>
復(fù)制代碼
3. 在上面 HTML 代碼之前,添加以下 CSS 樣式代碼:
- <style>
- .float-buttons { position: fixed; bottom: 20px; right: 20px; z-index: 999; }
- .float-btn { display: block; width: 40px; height: 40px; line-height: 40px; text-align: center; border-radius: 50%; background: rgba(0,0,0,0.5); color: #fff; margin-bottom: 10px; box-shadow: 0 2px 5px rgba(0,0,0,0.16), 0 2px 10px rgba(0,0,0,0.12); transition: all 0.3s ease; }
- .float-btn:hover { background: rgba(0,0,0,0.8); transform: translateY(-3px); box-shadow: 0 5px 11px 0 rgba(0,0,0,0.18), 0 4px 15px 0 rgba(0,0,0,0.15); }
- </style>
復(fù)制代碼
4. 在上面 CSS 代碼之后,添加以下 jQuery 代碼:
- <script>
- $(window).scroll(function() {
- if ($(window).scrollTop() >= $(window).height()) {
- $(".top-btn").show();
- } else {
- $(".top-btn").hide();
- }
- });
- </script>
復(fù)制代碼
以上代碼實現(xiàn)了以下功能:
- 引入 Font Awesome 字體庫
- 在頁面右下角添加三個按鈕,分別是返回上一頁、返回論壇首頁、返回當前頁面頂部
- 使用 Font Awesome 圖標顯示按鈕
- 為按鈕添加了簡潔的樣式,包括位置、大小、顏色、陰影等
- 為按鈕添加了懸浮動畫效果,鼠標懸停時按鈕會上浮并改變陰影
- 通過 jQuery 監(jiān)聽頁面滾動事件,當滾動距離超過一屏高度時顯示"返回頂部"按鈕,否則隱藏
注意,如果你的論壇沒有加載 jQuery 庫,上面的 jQuery 代碼可能無法正常工作,你需要先引入 jQuery 庫。
這樣就完成了你的需求,如有任何其他問題,歡迎繼續(xù)提出。
繼續(xù)提問:
發(fā)現(xiàn)3個體驗不好的地方:
1. 即使是首次訪問,也會顯示返回上一頁
2.首頁會顯示首頁按鈕
3.返回頂部的按鈕顯示的太晚,下滑了很久才顯示
AI回復(fù):
好的,根據(jù)你提出的3個不太好的體驗,我們可以做如下優(yōu)化:
1. 判斷是否是首次訪問,如果是則不顯示"返回上一頁"按鈕
2. 判斷當前頁面是否是論壇首頁,如果是則不顯示"返回首頁"按鈕
3. 提前顯示"返回頂部"按鈕,比如滾動超過300像素時就顯示
修改后的代碼:
注意以下幾點:
1. 對"返回上一頁"按鈕添加了判斷,如果是首次訪問(`!isset($_SERVER['HTTP_REFERER'])`)則隱藏該按鈕
2. 對"返回首頁"按鈕添加了判斷,如果當前頁面是論壇首頁(`$_G['PHP_SELF'] == $_G['siteurl']`)則隱藏該按鈕
3. 將顯示"返回頂部"按鈕的滾動距離改為300像素
通過這些優(yōu)化,應(yīng)該解決了你提出的3個體驗問題。如果還有任何其他需求,歡迎繼續(xù)反饋。
我覺得300還是有點長,就改為100像素了,大功告成!
這個代碼是可以運行沒有啥問題的,但是如果還想優(yōu)化,可以考慮將字體文件下載到本地引入,把css和js寫到專門的css文件引入,也可以將部分代碼移到footer中。如果想更自定義一些,也可以考慮做成插件
最后附上問答圖片和最后的效果圖
WX20240511-212143@2x.png (591.42 KB, 下載次數(shù): 42)
下載附件
2024-5-11 22:36 上傳
WX20240511-212206@2x.png (570.72 KB, 下載次數(shù): 45)
下載附件
2024-5-11 22:36 上傳
WX20240511-215118@2x.png (551.94 KB, 下載次數(shù): 44)
下載附件
2024-5-11 22:36 上傳
WX20240511-222334@2x.png (294.26 KB, 下載次數(shù): 86)
下載附件
2024-5-11 22:36 上傳
|
|