我想显示加载进度条,直到页面加载。如果互联网可能是缓慢的,页面需要更多的加载,进度条显示,直到页面完全加载。
我试图添加代码,但由于互联网速度不同,它是不准确的.你能帮我这个吗?我想添加一个进度条,从0%开始,而页面正在加载,并在页面完全加载后上升到100%,取决于页面加载速度.
$(window).on('load', function() {
$('#preloader').fadeOut(500);
$('body').removeClass('pre_loader');
});
var width = 100,
perfData = window.performance.timing, // The PerformanceTiming interface represents timing-related performance information for the given page.
EstimatedTime = -(perfData.loadEventEnd - perfData.navigationStart),
time = parseInt((EstimatedTime / 1000) % 60) * 100;
// Loadbar Animation
$(".loadbar").animate({
width: width + "%"
}, time);
// Percentage Increment Animation
function animateValue(id, start, end, duration) {
var range = end - start,
current = start,
increment = end > start ? 1 : -1,
stepTime = Math.abs(Math.floor(duration / range)),
obj = $(id);
var timer = setInterval(function() {
current += increment;
$(obj).text(current + "%");
//obj.innerHTML = current;
if (current == end) {
clearInterval(timer);
}
}, stepTime);
}
// Fading Out Loadbar on Finised
setTimeout(function() {
$('.preloader-wrap').fadeOut(100);
}, time);
<div class="preloader-wrap">
<div class="loader">
<div class="trackbar">
<div class="loadbar">
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
1条答案
按热度按时间hgb9j2n61#
听起来像CSS(仅)动画将是一个可以考虑的选择。内联你的进度条,它的
<style>
作为页面加载的第一件事。然后删除,然后使身体再次可见页面加载事件。如果你使用一些缓动功能,将永远不会完成,你可以欺骗时间。如果你需要进度条中的数字,那么有一个选项;即使是在现代浏览器中的变量https://css-tricks.com/animating-number-counters/
例如(需要使用百分比值):