我的博客:session
==============this
最近半年都處於一個很是忙碌的狀態,直到如今纔有功夫騰出時間記錄這段時間以來踩過的一個個坑。spa
今天先記錄關於IScroll 5.1.3版本的坑吧,以及本身打的一個小補丁prototype
=============================code
調用IScroll的時候,在IScorll區域有須要點擊時部分安卓機點擊無效。若設置click爲true,則IOS需雙擊才能觸發。 blog
解決方案:針對不一樣機型進行iscroll配置參數click的修改。token
1 function IScroll (el, options) { 2 // INSERT POINT: DEFAULTS 3 // fix click in bad Andriod 4 this.options.click = this.fixIScrollClickInAndriod(); 5 } 6 IScroll.prototype = { 7 version: '5.1.3', 8 fixIScrollClickInAndriod: function (){ 9 if (/iPhone|iPad|iPod|Macintosh/i.test(navigator.userAgent)) return false; 10 if (/Chrome/i.test(navigator.userAgent)) return (/Android/i.test(navigator.userAgent)); 11 if (/Silk/i.test(navigator.userAgent)) return false; 12 if (/Android/i.test(navigator.userAgent)) { 13 var s = navigator.userAgent.substr(navigator.userAgent.indexOf('Android')+8,5); 14 //return parseFloat(s[0]+s[3]) < 44 ? false : true} 15 return parseFloat(s[0]+s[2]+s[4]) <= 442 && parseFloat(s[0]+s[2]+s[4]) > 430 ? true : false} 16 } 17 }
在返回頁面的時候須要定位,因此把第一次進入的位置存入sessionStorage了,取出來時調用scrollTo(0,pos)無效。 ci
出現緣由:IScroll對於數值設置爲Number,當存入sessionStorage會轉爲字符串,若取出來不進行parseFloat處理,將返NaN致使沒法定位
解決方案:一、對從sessionStorage中取出來的數值,進行parseFloat處理。二、修改IScroll關於scrollTo位置的源碼,增長 || 0 操做字符串
1 var myScroll = new Scroll("#wrapper"); 2 window.sessionStorage.setItem("pos",myScroll.y); 3 myScroll.scrollTo(parseFloat(window.sessionStorage.getItem("pos"))); // 也可修改scrollTo方法作 || 0 轉換爲數值處理