采用局部滾動(dòng)布局,不要給body和html添加此條有誤,只有全局滾動(dòng)才可以避免此類問(wèn)題發(fā)生overflow:hidden
,因?yàn)閍ndroid系統(tǒng)下,focus input框時(shí),會(huì)出現(xiàn)鍵盤彈起遮住input框的bug。iOS下采用
-webkit-overflow-scrolling
開(kāi)啟局部彈性滾動(dòng)布局,盡量不要在局部滾動(dòng)內(nèi)部采用:active
偽類樣式,當(dāng):active
偽類和iOS特有的慣性滾動(dòng)一起觸發(fā)時(shí),頁(yè)面會(huì)閃爍無(wú)法在iOS12微信瀏覽器內(nèi),通過(guò)historyAPI修改即將復(fù)制出去的鏈接,但安卓可以。
iOS8 支持css3 animtion動(dòng)畫,但不支持animation回調(diào)
-
android下監(jiān)聽(tīng)鍵盤彈起收回事件,支持屏幕旋轉(zhuǎn)
let h = window.innerHeight; let orientation = window.orientation; if (os.isAndroid) { window.addEventListener('resize', () => { let height = window.innerHeight; if (orientation === window.orientation && height < h) { window.dispatchEvent(new CustomEvent('keyboardshow')); return; } if (orientation === window.orientation && height === h) { window.dispatchEvent(new CustomEvent('keyboardhide')); return; } if (orientation !== window.orientation) { h = height; orientation = window.orientation; window.dispatchEvent(new CustomEvent('keyboardhide')); } }); }
-
css針對(duì)iOS或andorid采用不同樣式:
/*android 4.44以下、iOS環(huán)境*/ div{border:0.5px solid #fff} @supports not (-webkit-overflow-scrolling:touch){ /*android 4.44以上的環(huán)境*/ div{border:none;box-shadow:0 0 0 0.5px #fff} }
supports支持程度為iOS 8+,android 4.44+,可根據(jù)需求靈活調(diào)整語(yǔ)法。
移動(dòng)端可以使用vh和vw這兩個(gè)單位,根據(jù)mdn文檔,vh等于1%初始視口高度,vw為1%初始視口寬度,但在safari中,使用這個(gè)“初始視口高度”包含了頂部的地址欄和底部的導(dǎo)航欄。因此不能在safari中使用100vh當(dāng)成全屏高度使用。
-
解決安卓line-height設(shè)置后文字不居中的辦法(android 7.0+):
- 第一步,給html設(shè)置語(yǔ)言,指定中文:
<html lang="zh_cn">
- 第二步,使用中文字體進(jìn)行渲染:
html{font-family:sans-serif}
- 第一步,給html設(shè)置語(yǔ)言,指定中文:
-
一個(gè)數(shù)字轉(zhuǎn)成對(duì)應(yīng)的rgba顏色值:
function n2rgba(n){ if(i>0xffffffff)return [0xff,0xff,0xff,1]; const str = ('00000000'+n.toString(16)).slice(-8); return [ parseInt(`0x${str.slice(0,2)}`), parseInt(`0x${str.slice(2,4)}`), parseInt(`0x${str.slice(4,6)}`), parseInt(`0x${str.slice(6,8)}`)/0xff, ] } //采用位運(yùn)算 function n2rgba(n){ return [ (n & 0xff000000)>>>24, (n & 0xff0000)>>>16, (n & 0xff00)>>>8, (n & 0xff)/0xff ] }
-
一個(gè)rgba顏色值轉(zhuǎn)成數(shù)字(a最大值為255)
function rgba2n(r,g,b,a){ const toHex=(n)=>('00'+n.toString(16)).slice(-2) return parseInt( '0x' +toHex(r) + toHex(g)+ toHex(b) + toHex(a) ); } //采用運(yùn)算 function rgba2n(r,g,b,a){ return [r,g,b,a].reduce((n,item,i)=>{ item = Math.abs(item); if(item>=0xff){ item = 0xff } n += item*Math.pow(16,(3-i)*2) return n },0) }
-
在canvas中繪制iconfont圖標(biāo):
var ctx = canvas.getContext('2d'); //可以隨意設(shè)置顏色 ctx.fillStyle='#f00' //iconfont對(duì)應(yīng)導(dǎo)出的字體名稱 ctx.font='24px iconfont' //'\ue508'對(duì)應(yīng)相應(yīng)圖標(biāo)的字體編碼 ctx.fillText('\ue508',0,0);
webpack4+less+MiniCssExtractPlugin
打包后公共less代碼提取不出來(lái)?試試使用@import (reference) '<你的公共less或者主題less文件>';
代替@import '<你的公共less或者主題less文件>';
莫名其妙,ios safari里,視口外的css3 animation動(dòng)畫初始化時(shí)不執(zhí)行,除非你給
animation-delay
加個(gè)延時(shí),而且這個(gè)延時(shí)還不能太小,另外,通過(guò)使用setTimeout
給他加延時(shí)的話,也是可以的-
chrome里面,想要獲取輸入光標(biāo)的包圍盒直接調(diào)用
range.getBoundingClientRect()
就可以了,而在safari ios里面,如果當(dāng)前的光標(biāo)range
的collapsed
狀態(tài)為true,則獲取到的值都是0。但可以通過(guò)range.getClientRects()
獲取到光標(biāo)包圍盒:function getRangeBoundingClientRect(){ let selection = window.getSelection(); let defaultValue = {top:0,left:0/*...and so on*/}//默認(rèn)返回 if(!selection.rangeCount){ return defaultValue } let range = selection.getRangeAt(0); if(!range){ return defaultValue } let rangeBcrList = range.getClientRects(); if(!rangeBcrList.length){ return defaultValue } return rangeBcrList[0] }
2019前端筆記
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 100個(gè)常用的javascript函數(shù) 1、原生JavaScript實(shí)現(xiàn)字符串長(zhǎng)度截取 復(fù)制代碼代碼如下: fun...
- JavaScript 1. type 類型判斷 isString (o) {//是否字符串 returnObjec...
- 北京2018年4月1日上午,NBA常規(guī)賽勇士客戰(zhàn)國(guó)王的比賽中,發(fā)生了令人痛心不已的一幕。比賽進(jìn)行到第三節(jié)還有41...
- ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程,因...