今日重點:
滾動視窗,讓圖片產生飛進飛出的動態效果。
學習筆記:
關鍵
1. 取得元素的控制權
2. 監聽元素
3. 放入判斷改變圖片CSS
取得元素的控制權
const imgAll = document.querySelectorAll('.slide-in');
監聽元素
window.addEventListener('scroll',debounce(handler));
放入判斷改變圖片CSS
function handler(){
imgAll.forEach( img =>{
//條件一
let imgShow = img.offsetTop + img.height/2;
let windowHeight = window.scrollY + window.innerHeight;
let imgAppear = windowHeight > imgShow;
//條件二
let imgBottom = img.offsetTop + img.height;
let imgOnWindow = imgBottom > window.scrollY;
if( imgOnWindow && imgAppear ){
img.classList.add('active');
console.log('123')
} else {
img.classList.remove('active');
} ;
});
}
提供我的github可以參考做法
參考資料
github:
hackmd筆記:Slide in on Scroll