iOS微信H5頁面橡皮回彈效果的踩坑記錄
業(yè)務(wù)需求
近期開發(fā)的項目有一部分是與微信公眾號相關(guān)的H5頁面,在Android端微信上頁面效果展示無異常,但是在 iOS端 微信多多少少會出現(xiàn)一些意想不到的bug。此次主要針對移動端H5頁面在iOS端產(chǎn)生的 橡皮回彈(橡皮筋效果)問題做一下相關(guān)記錄,希望對遇到類似問題的同學(xué)有所幫助。
🐕方案一:使用 inobounce.js
inobounce.js github地址
在 html主頁面 的 header 標(biāo)簽中引入 inbounce.js,即 。當(dāng)引入此文件之后,iOS端整個頁面都無法滑動或滾動,若想滾動的元素能夠?qū)崿F(xiàn)滾動效果,則需要對滾動區(qū)域設(shè)置固定的高度,即 height、max-height,同時也要設(shè)置 overflow: auto,實現(xiàn)頁面滑動。為防止iOS端頁面滾動發(fā)生卡頓現(xiàn)象,需要對滾動區(qū)域設(shè)置 -webkit-overflow-scrolling: touch 屬性。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>inobounce</title>
<script src="inobounce.js"></script>
<style>
ul {
height: 115px;
border: 1px solid gray;
overflow: auto;
-webkit-overflow-scrolling: touch;
}
</style>
</head>
<body>
<ul>
<li>List Item 1</li>
<li>List Item 2</li>
<li>List Item 3</li>
<li>List Item 4</li>
<li>List Item 5</li>
<li>List Item 6</li>
<li>List Item 7</li>
<li>List Item 8</li>
<li>List Item 9</li>
<li>List Item 10</li>
</ul>
</body>
</html>
🐒 方案二:CSS樣式處理(推薦)
偶然間在iOS端打開一些公眾號的H5活動頁,沒有產(chǎn)生所謂的橡皮回彈效果,于是就想著是否可以采用此效果來解決iOS端網(wǎng)頁產(chǎn)生的橡皮回彈效果。最終嘗試此方法可以實現(xiàn)iOS端頁面固定,不產(chǎn)生橡皮回彈效果。在系統(tǒng)版本iOS13+上的設(shè)備上已解決橡皮筋效果,系統(tǒng)版本iOS12+的設(shè)備上沒有嘗試,后續(xù)準(zhǔn)備找iOS12+的蘋果手機(jī)進(jìn)行進(jìn)一步的測試,其次再將測試結(jié)果進(jìn)行補(bǔ)充。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>iOS橡皮回彈</title> </head> <body> <!-- 內(nèi)容區(qū) --> <div id="app"></div> </body> </html>
主要CSS代碼:
/* 初始化 */
* {
margin: 0;
padding: 0;
}
/* 基本樣式 */
html,
body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
box-sizing: border-box;
position: relative;
}
/* 超出滾動 */
#app {
width: 100%;
height: 100%;
overflow-y: auto;
}
🐬總結(jié):
總的來說,兩種方案我在實際開發(fā)中都進(jìn)行了嘗試。方案一在微信中瀏覽H5網(wǎng)頁時可以完美解決橡皮回彈效果;當(dāng)H5頁面在iOS端微信授權(quán)跳轉(zhuǎn)時,底部會有一個導(dǎo)航條,此時導(dǎo)航條也有可能被遮蓋,點(diǎn)擊導(dǎo)航條兩端的按鈕沒有反應(yīng)。在Safari瀏覽器打開H5頁面時,網(wǎng)頁的頂端地址欄和底部菜單欄會有一定的遮擋,體驗效果不是很理想,最終此方案被pass掉了。方案二是我實際工作中使用的,回彈效果得到了一定的改善。體驗效果較方案一有了很大的提升。
如果頁面有微信授權(quán),以及頁面路徑的跳轉(zhuǎn),此時iOS端微信打開的網(wǎng)頁底部會多出一個導(dǎo)航條,同樣Android端微信不會出現(xiàn)類似導(dǎo)航條。若沒有微信授權(quán)以及頁面跳轉(zhuǎn),則兩方案均可選;若有微信授權(quán),推薦使用方案二。
到此這篇關(guān)于iOS微信H5頁面橡皮回彈效果的文章就介紹到這了,更多相關(guān)iOS微信H5頁面橡皮回彈內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript的onchange事件與jQuery的change()方法比較
本來是想添加文本框文本內(nèi)容改變事件動作的,結(jié)果找了許多這方面的javascript代碼都不如意。2009-09-09
javascript 處理HTML元素必須避免使用的一種方法
我們在編寫前臺頁面的時候,可能經(jīng)常會用到“javascript+數(shù)據(jù)”生成頁面元素的方法,但當(dāng)我們要處理的數(shù)據(jù)量較大,導(dǎo)致頁面需要展現(xiàn)過多的控件的時候,頁面的響應(yīng)速度也會直線下降2009-07-07
2019 年編寫現(xiàn)代 JavaScript 代碼的5個小技巧(小結(jié))
這篇文章主要介紹了2019 年編寫現(xiàn)代 JavaScript 代碼的5個小技巧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
小程序webview內(nèi)網(wǎng)頁實現(xiàn)微信支付的代碼示例
這篇文章主要介紹了在小程序中使用webview實現(xiàn)微信支付功能,需要在小程序和webview之間進(jìn)行交互,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02
如何用js判斷當(dāng)前是否是企業(yè)微信環(huán)境還是微信環(huán)境
這篇文章主要給大家介紹了關(guān)于如何用js判斷當(dāng)前是否是企業(yè)微信環(huán)境還是微信環(huán)境的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2024-04-04
微信小程序報錯:does?not?have?a?method?"xxxx"?to?ha
這篇文章主要給大家介紹了關(guān)于微信小程序報錯:does?not?have?a?method?"xxxx"?to?handle?event?"tap"的解決方案,文中將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01

