【发布时间】:2018-09-03 09:05:38
【问题描述】:
我的 javascript 有问题。该脚本使我网站上的三个元素大小相同。我想通过延迟加载来加载我的图片。这使得渲染不正确,因为元素的大小是由没有图像的脚本计算的。是否可以给javascript一个函数,它只有在图像通过延迟加载成功加载后才会启动?
<script type="text/javascript">
jQuery(document).ready(function($){
function kb_equal_height() {
var highest_element = 0;
// Delete the height
$('.navigation-left,.site-content,.widget-area').each(function() {
$(this).removeAttr('style');
});
// Check which element is highest
$('.navigation-left,.site-content,.widget-area').each(function() {
if ($(this).height() > highest_element) {
highest_element = $(this).height();
}
});
// Assign this height to all elements
$('.navigation-left,.site-content,.widget-area').each(function() {
$(this).height(highest_element);
});
};
window.onload = kb_equal_height;
var resizeTimer;
$(window).resize(function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(kb_equal_height, 100);
});
});
</script>
【问题讨论】:
-
您可以尝试异步加载图片并将其设置为
img标签。此外,您可以为这些元素分配特定的类来定义维度。 -
我认为您可以在
img标签上使用.onload来调用每次加载图像时的功能 -
感谢您的回答!我尝试设置 img 标签,但我不明白。
-
你能给我一个关于 img 标签的 .onload 脚本的示例吗?
标签: javascript function load element lazy-evaluation