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