我需要将HTML文件的内容加载到div中。
我用下面的javascript代码来做这件事
function scroll_down() {
var div = $('#div_name');
$.get('html_file_to_load.html', function(data) {
div.html(data);
$('body, html').scrollTop(div[0].scrollHeight);
})
}
该函数加载html_file_to_load.html文件,将内容添加到div,然后向下滚动页面。问题是HTML文件可能包含一些图片
示例< img src='picture.jpg' >
在这种情况下,在加载HTML代码后,滚动条被设置到底部,浏览器加载图片,页面的垂直高度增加!
我需要添加一个检查:在执行scrollTop(div.scrollHeight)之前,浏览器必须等到最终包含在其中的HTML文件和图片文件都加载完毕;
我该怎么做呢?
发布于 2021-01-15 16:32:44
您可以将事件侦听器添加到图像中,并在加载时强制其滚动
function forceScroll(elem) {
$('body, html').scrollTop(elem.scrollHeight);
}
function scroll_down() {
var div = $('#div_name');
$.get('html_file_to_load.html', function(data) {
var html = $(data);
var imgs = html.find("img");
imgs.each(function() {
$(this).on("load", function() {
forceScroll(div[0]);
});
});
div.append(html);
forceScroll(div[0]);
}
});
}
https://stackoverflow.com/questions/65739577
复制相似问题