window.addEventListener('resize', function () {
if (
document.activeElement.tagName === 'INPUT' ||
document.activeElement.tagName === 'TEXTAREA' ||
document.activeElement.getAttribute('contenteditable') == 'true'
) {
window.setTimeout(function () {
if ('scrollIntoView' in document.activeElement) {
document.activeElement.scrollIntoView();
} else {
// @ts-ignore
document.activeElement.scrollIntoViewIfNeeded();
}
}, 0);
}
})
懒加载:
<ul>
<li><img src="./img/default.png" data="./img/1.png" alt=""></li>
<li><img src="./img/default.png" data="./img/2.png" alt=""></li>
<li><img src="./img/default.png" data="./img/3.png" alt=""></li>
<li><img src="./img/default.png" data="./img/4.png" alt=""></li>
<li><img src="./img/default.png" data="./img/5.png" alt=""></li>
<li><img src="./img/default.png" data="./img/6.png" alt=""></li>
<li><img src="./img/default.png" data="./img/7.png" alt=""></li>
<li><img src="./img/default.png" data="./img/8.png" alt=""></li>
</ul>
let imgs = document.querySelectorAll('img')
// 窗口可视区高度
let clientHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
// img 距离窗口可视区顶部的距离 imgs[i].getBoundingClientRect().top
function lazyLoadImg () {
for (let i = 0; i < imgs.length; i ++) {
if((imgs[i].getBoundingClientRect().top + imgs[i].height)>=0&&imgs[i].getBoundingClientRect().top < clientHeight ){
imgs[i].src = imgs[i].getAttribute('data')
}
}
}
window.addEventListener('scroll', lazyLoadImg);
作者:yck
链接:https://juejin.im/post/5d3d5770e51d45777b1a3e9e
来源:掘金