html lazyLoading使用JavaScript
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html lazyLoading使用JavaScript相关的知识,希望对你有一定的参考价值。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>lazy loading</title>
<style>
img {
display: block;
margin: 10px auto;
}
</style>
</head>
<body>
<div class="images">
<img src="http://via.placeholder.com/350x150" data-scr="images/test.jpg">
<img src="http://via.placeholder.com/350x150" data-scr="images/test.jpg">
<img src="http://via.placeholder.com/350x150" data-scr="images/test.jpg">
<img src="http://via.placeholder.com/350x150" data-scr="images/test.jpg">
<img src="http://via.placeholder.com/350x150" data-scr="images/test.jpg">
<img src="http://via.placeholder.com/350x150" data-scr="images/test.jpg">
<img src="http://via.placeholder.com/350x150" data-scr="images/test.jpg">
<img src="http://via.placeholder.com/350x150" data-scr="images/test.jpg">
<img src="http://via.placeholder.com/350x150" data-scr="images/test.jpg">
<img src="http://via.placeholder.com/350x150" data-scr="images/test.jpg">
<img src="http://via.placeholder.com/350x150" data-scr="images/test.jpg">
<img src="http://via.placeholder.com/350x150" data-scr="images/test.jpg">
<img src="http://via.placeholder.com/350x150" data-scr="images/test.jpg">
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
//使用原生JavaScript实现
var imgs = document.getElementsByTagName('img');
function lazyLoading() {
//获取滚动条偏移量
var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
// 获取视口高度
var viewportSize = window.innerHeight || document.documentElement.clientHeight;
for (var i = 0; i < imgs.length; i++){
var x = scrollTop + viewportSize - imgs[i].offsetTop;
if ( x > 0){ //如果图片暴露在视野范围之内
imgs[i].src = imgs[i].getAttribute('data-scr'); //将自定义属性的值赋给src
}
}
}
lazyLoading();
window.addEventListener('scroll', lazyLoading, false);
/*
//使用jQuery实现
$(document).ready(function () {
var lazyLoading = function () {
var scrollTop = $(window).height();
var viewportSize = $(window).scrollTop();
$('img').each(function () {
var x = scrollTop + viewportSize - $(this).position().top;
if (x > 0){
$(this).attr('src', $(this).attr('data-scr'));
}
});
}
window.addEventListener('scroll', lazyLoading, false);
});*/
</script>
</body>
</html>
以上是关于html lazyLoading使用JavaScript的主要内容,如果未能解决你的问题,请参考以下文章
html lazyLoading使用JavaScript
lazyload 图片延迟加载
图片懒加载插件lazyload使用方法
jquery lazyload延迟加载技术的实现原理分析
jquery lazyload
jQuery图片延迟加载插件jQuery.lazyload 的使用