安卓手機端HTML5頁面input\textarea聚焦時堵幽,虛擬鍵盤彈出導(dǎo)致頁面下方留白或者頁面混亂的解決方案
在input\textarea聚焦時丧慈,將body的高度改變?yōu)轫撁婵娠@示的區(qū)域的高度证九。 $('body').height($('body')[0].clientHeight);
頁面防抖以及節(jié)流
防抖:延時處理,然后如果在這段延時內(nèi)又觸發(fā)了事件瓷患,則重新開始延時酗宋。
節(jié)流:window.addEventListener('scroll',throttle(realFunc,500,1000));
ionic3實現(xiàn)三種回頂部操作
1. 用id獲取模板中content中最高的那個元素,給元素設(shè)置id品姓,錨點跳轉(zhuǎn)
2. 調(diào)用content的scrollToTop()寝并,然而,當(dāng)content設(shè)置為fullscreen時腹备,header會覆蓋一部分(不會完全滑動上去)
3.滾動到指定坐標(biāo)位置衬潦,三個參數(shù)依次為坐標(biāo)x,y馏谨,滾動時間(毫秒單位)别渔。this.content.scrollTo(0, 0, 300)
使用過...修飾符嗎?
這叫展開語法惧互,屬于es6的新語法,可以在函數(shù)調(diào)用喇伯、數(shù)組構(gòu)造喊儡、構(gòu)造字面量對象時, 將數(shù)據(jù)展開賦值。
JS基本數(shù)據(jù)類型
JS基本有5種簡單數(shù)據(jù)類型:String稻据,Number艾猜,Boolean,Null捻悯,undefined,Symobl
一種復(fù)雜的數(shù)據(jù)類型Object匆赃。
箭頭函數(shù)與普通函數(shù)區(qū)別
1. 箭頭函數(shù)是匿名函數(shù),不能作為構(gòu)造函數(shù)今缚,不能使用new
2. 箭頭函數(shù)不能綁定arguments算柳,取而代之用rest參數(shù)...解決
3.箭頭函數(shù)沒有原型屬性
4. 箭頭函數(shù)的this永遠指向其上下文的this,沒有辦改變其指向姓言,普通函數(shù)的this指向調(diào)用它的對象
]5.箭頭函數(shù)不綁定this瞬项,會捕獲其所在的上下文的this值蔗蹋,作為自己的this值
6. 其他區(qū)別:
(1).箭頭函數(shù)不能Generator函數(shù)。
(2).箭頭函數(shù)不具有prototype原型對象囱淋。
(3).箭頭函數(shù)不具有super猪杭。
(4).箭頭函數(shù)不具有new.target。
透明度怎么設(shè)置妥衣?有什么區(qū)別皂吮?
1. Rgba:background-color: rgba(0,0,0,0.1)`
2. opacity 屬性能夠設(shè)置的值從 0.0 到 1.0。值越小,越透明税手。
3. 總結(jié):?rgba()方法與opacity方法雖然都可以實現(xiàn)透明度效果涮较,但rgba()只作用于元素的顏色或其背景色(設(shè)置了rgb()透明度元素的子元素不會繼承其透明效果);而opacity具有繼承性冈止,既作用于元素本身狂票,也會使元素內(nèi)的所有子元素具有透明度。
關(guān)于事件冒泡熙暴、事件捕獲和事件委托
?
淺拷貝和深拷貝
??var?newObj = {} //如果不是引用類型闺属,直接返回
[if !supportLists]·?[endif]??if?(typeof?obj !淺拷貝
復(fù)制// 第一層為深拷貝
Object.assign()Array.prototype.slice()
擴展運算符...
[if !supportLists]·?[endif]深拷貝
復(fù)制JSON.parse(JSON.stringify())
遞歸函數(shù)
復(fù)制function?cloneObject(obj) {
== 'object') {
????return?obj
??}
??//如果是引用類型,遍歷屬性
??else?{
????for?(var?attr in?obj) {
??????//如果某個屬性還是引用類型周霉,遞歸調(diào)用
??????newObj[attr] = cloneObject(obj[attr])
????}
??}
??return?newObj
}
?
數(shù)組去重的方法
1.ES6 的 Set
復(fù)制let?arr = [1,1,2,3,4,5,5,6]let?arr2 = [...new?Set(arr)]
2.reduce()
復(fù)制let?arr = [1,1,2,3,4,5,5,6]
let?arr2 = arr.reduce(function(ar,cur) {
??if(!ar.includes(cur)) {
????ar.push(cur)
??}
??return?ar
},[])
3.filter()
復(fù)制// 這種方法會有一個問題:[1,'1']會被當(dāng)做相同元素掂器,最終輸入[1]let?arr = [1,1,2,3,4,5,5,6]let?arr2 = arr.filter(function(item,index) {
??// indexOf() 方法可返回某個指定的 字符串值 在字符串中首次出現(xiàn)的位置
??return?arr.indexOf(item) === index
})
?
DOM 事件有哪些階段?談?wù)剬κ录淼睦斫?/b>
分為三大階段:捕獲階段--目標(biāo)階段--冒泡階段
事件代理簡單說就是:事件不直接綁定到某元素上俱箱,而是綁定到該元素的父元素上国瓮,進行觸發(fā)事件操作時(例如'click'),再通過條件判斷狞谱,執(zhí)行事件觸發(fā)后的語句(例如'alert(e.target.innerHTML)')
好處:(1)使代碼更簡潔乃摹;(2)節(jié)省內(nèi)存開銷