[英]Website loading differently on mobile the second time loading
我正在创建一个个人网站,并发现了一个错误,该错误会在我的Firefox或Chrome浏览器上使用Android手机时首次正确加载该页面,但是当我刷新该页面时会加载不同的错误。
我正在使用jQuery动态确定视口的大小,因此将内容正确地定位在视口下方。 最终发生的事情是该函数似乎以0的高度查看图像,并将内容放在页面的顶部,而不是将其放置在图像下方。 如果我向下滚动页面然后向上滚动,图像就在那里。
在我的桌面上不会发生这种情况,因此似乎是特定于移动设备的。
执行动态大小调整的jQuery函数如下。
// This line simply puts the content below the image at either the viewport height
// or the image height, depending on whether the image height is larger than the viewport
var height = $(window).outerHeight() < $('.jumbotron-img').innerHeight() ? $(window).outerHeight() : $('.jumbotron-img').innerHeight();
$('#header-img-container').css('height', height);
对应的HTML
</div>
<div id='header-img-container'>
<img src='images/site_skyline.jpg' class='img-fluid jumbotron-img'>
<h1 class='d-flex justify-content-center fixed-top' id='main-header'>My Name</h1>
</div>
发生这种情况的原因是,在加载图像之前,您似乎正在获取容器的高度。 在您的浏览器中,图像可能以某种方式缓存,这就是为什么您看不到与移动设备相同的原因。
为了确保所有内容都已加载并获得正确的容器高度,可以在window.load()
方法内调用函数。
根据您的jQuery版本,您可以执行以下操作:
$( window ).load(function() {
var height = $(window).outerHeight() < $('.jumbotron-img').innerHeight() ? $(window).outerHeight() : $('.jumbotron-img').innerHeight();
$('#header-img-container').css('height', height);
});
另外,如果您要针对特定图像进行优化,则可以仅在加载图像时调用load方法。
$( ".jumbotron-img" ).load(function() {
alert('image loaded');
});
您可能需要使用一个ID来避免使用类jumbotron-img,以防万一,并且需要具体说明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.