我有一个页面,其中包含多个图库,包括手风琴和幻灯片。问题是该页面加载需要很长时间。是否有一种方法可以将图像包装在一小段代码中或应用类来强制它在其他所有内容加载完成后才进行加载?
您可以使用“lazy-loading”技术来解决这个问题。这种技术允许只在用户滚动到它们时再加载图像。您可以通过为每个图像元素添加“loading=lazy”属性来实现这一点,或使用JavaScript库来更好地控制延迟加载。例如,您可以使用像Lazysizes或Lozad.js这样的库来延迟加载整个页面上的所有图像。我有一个页面,其中包含多个图库,包括手风琴和幻灯片。问题是该页面加载需要很长时间。是否有一种方法可以将图像包装在一小段代码中或应用类来强制它在其他所有内容加载完成后才进行加载?
您可以使用“lazy-loading”技术来解决这个问题。这种技术允许只在用户滚动到它们时再加载图像。您可以通过为每个图像元素添加“loading=lazy”属性来实现这一点,或使用JavaScript库来更好地控制延迟加载。例如,您可以使用像Lazysizes或Lozad.js这样的库来延迟加载整个页面上的所有图像。当然可以。将img src属性替换为“#”,并添加自定义属性,就像这样:
<img src="#" data-delayedsrc="/img/myimage.png" />
然后,在页面加载时添加一行JavaScript代码,执行以下操作:
$('img').each(function(){
$(this).attr('src', $(this).data('delayedsrc'));
});
$(document).ready(function () {
setTimeout(function () {
$('.load-delay').each(function () {
var imagex = $(this);
var imgOriginal = imagex.data('original');
$(imagex).attr('src', imgOriginal);
});
}, 3000);
});
HTML和jQuery库:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<meta charset="utf-8" />
</head>
<body>
<h1>Loading-Delayed Image</h1>
<img class="load-delay" src="http://i.imgur.com/7ZMlu3C.gif" data-original="http://oi42.tinypic.com/9sqmaf.jpg" />
</body>
</html>
在HTML中只保留一张图片,以便观众有一个起点,然后使用jQuery注入其余的图片。
$(document).ready(function() {
//load rest of the images
});
你也可以使用事件加载器和 AJAX 或者 "边加载边展示",只需构建一个简单的回调函数,如果是自动旋转画廊或点击加载。