点击别处关闭浮层
1.阻止事件传播(stopPropagation)
阻止冒泡,不通知父级元素
代码(document监听浪费内存)
2.setTimeout延迟
利用setTimeout设置事件监听,冒泡完成后监听才进入队列生效
代码(有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
实现自动播放,但是浏览器切换到其他页面,计时器会乱掉,所以切换到其它页面时就砸掉计时器,回来的时候就重新计时。
document添加监听事件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)
}
})