點(diǎn)擊別處關(guān)閉浮層
1.阻止事件傳播(stopPropagation)
阻止冒泡,不通知父級(jí)元素
代碼(document監(jiān)聽浪費(fèi)內(nèi)存)
2.setTimeout延遲
利用setTimeout設(shè)置事件監(jiān)聽,冒泡完成后監(jiān)聽才進(jìn)入隊(duì)列生效
代碼(有bug)
3.點(diǎn)開浮層、關(guān)閉浮層的例子
寫出一個(gè)點(diǎn)開浮層、關(guān)閉浮層的例子,要求
點(diǎn)擊按鈕彈出浮層
點(diǎn)擊別處關(guān)閉浮層
點(diǎn)擊浮層時(shí),浮層不得關(guān)閉
再次點(diǎn)擊按鈕,浮層消失
代碼
jQuery做一個(gè)自動(dòng)播放的無(wú)縫輪播
1.輪播思想
window固定,設(shè)置slides的translateX()
2.無(wú)縫
設(shè)置fake:第一張前面加最后一張的copy,最后一張后面加第一張的copy
先切換到fake,然后隱藏切換到真正頁(yè)
$slides.css({transform:`translateX(100px)`}) //先切換到fake
.one('transitionend',function(){
$slides.hide().offset() //隱藏
$slides.css({transform:`translateX(200px)`}).show() //切換到真正頁(yè)再顯示
})
3.自動(dòng)播放
設(shè)置計(jì)時(shí)器setInterval實(shí)現(xiàn)自動(dòng)播放,但是瀏覽器切換到其他頁(yè)面,計(jì)時(shí)器會(huì)亂掉,所以切換到其它頁(yè)面時(shí)就砸掉計(jì)時(shí)器,回來(lái)的時(shí)候就重新計(jì)時(shí)。
document添加監(jiān)聽事件visibilitychange,切換頁(yè)面后document.hidden=true,切換回來(lái)后document.hidden=false
//離開界面砸掉計(jì)時(shí)器,回來(lái)重新設(shè)置一個(gè)
document.addEventListener('visibilitychange',function(e){
if(document.hidden){
clearInterval(timer)
}else{
timer = setInterval(function(){
goToSlide(current+1)
},2000)
}
})