移動端開發ios下遇到的坑

position: fixed引起的問題

在開發移動端頁面時,儘可能少使用固定定位佈局,由於會在ios系統上引起一系列不可控的情況,好比
1.使用fixed定位的元素會隨着頁面的滑動而抖動;
2.頁面滑動失去慣性;
3.可能在滑動過程當中引起瞬間的頁面錯亂,中止後恢復正常;
在須要使用fixed定位的時候,就與主體頁面分離,保證層級關係,不影響主體頁面。
tips:-webkit-overflow-scroll:touch 屬性也不能與fixed定位一塊兒使用javascript

new Date( )的bug

ios系統下,javascript的日期對象Date( )函數不能識別短橫槓:「 - 」 ,只能使用斜槓:「 / 」java

// 如下形式 ios能夠識別
let date = new Date("2018/09/14");

// 如下形式 ios不能識別
let date = new Date("2018-09-14");

事件委託的坑

最近維護老項目,使用jquery的on( )寫事件委託,安卓下能夠點擊,ios下不可點擊。jquery

// 改方法下ios下點擊無效
$("body").on("click", "#first-login .first-login-btn", function () {
    $("#first-login").hide();
})

//改爲touchend事件能夠點擊
$("body").on("touchend", "#first-login .first-login-btn", function () {
    $("#first-login").hide();
})

回頭查詢一下,當使用事件委託給【目標元素】添加 click 事件時,若是【代理元素】是 document或body,而且【目標元素】是默認不可點擊的(如 div, span 等),此時click事件會失效。若是【目標元素】是可點擊的(好比 button、a 標籤),此時click事件仍是有效的。
解決方案能夠替換click事件,或者給【目標元素】設置cursor: pointer;ios

相關文章
相關標籤/搜索