gpt4 book ai didi

jQuery 移动显示加载器用于自定义加载过程?

转载 作者:行者123 更新时间:2023-12-01 02:21:39 25 4
gpt4 key购买 nike

我正在构建一个包含丰富图像和交互元素的 Web 应用程序。由于这些原因,我只想在加载所有图像后显示页面:

$(document).on('pageinit', function(){
$('.ui-content').hide();
var imgs = $(".ui-content img").not(function() { return this.complete; });
var count = imgs.length;
if (count) {
imgs.load(function() {
count--;
if (!count) {
$(".ui-content").show()
}
});
} else {
$(".ui-content").show();
}
});

我需要 a) 完全删除加载程序并用我自己的加载程序替换它,或者 b) 让加载程序保持运行直到上述函数完成。

如何删除加载器或保留它直到不需要为止?

最佳答案

jQuery Mobile 自定义加载器

解决方案:

工作中的 jsFiddle: http://jsfiddle.net/Gajotres/vdgB5/

Mobileinit 事件必须在 jQuery Mobile 初始化之前和 jQuery 之后初始化。此外,还必须对 css 进行一些额外的更改才能使其正常工作。

首先,我们需要重写默认的 ui-loader-default 类,因为它的不透明度太低,最终的微调器很难看到。随心所欲地更改不透明度值。

.ui-loader-default {
opacity: 1 !important;
}

这是我们的微调器。

.custom-spinner {
width: 37px !important;
height: 37px !important;
background-image:url('http://pictures.reuters.com/ClientFiles/RTR/Images/ajax-loader.gif');
display: block;
}

这是一个工作示例:

代码示例

HTML:

<!DOCTYPE html>
<html>
<head>
<title>jQM Complex Demo</title>
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no; target-densityDpi=device-dpi"/>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<style>

.ui-loader-default {
opacity: 1 !important;
}

.custom-spinner {
width: 37px !important;
height: 37px !important;
background-image:url('http://pictures.reuters.com/ClientFiles/RTR/Images/ajax-loader.gif');
opacity: 1 !important;
display: block;
}
</style>
<script type="text/javascript" src="http://www.dragan-gaic.info/js/jquery-1.8.2.min.js"></script>
<script>
$( document ).bind( 'mobileinit', function(){
$.mobile.loader.prototype.options.text = "loading";
$.mobile.loader.prototype.options.textVisible = false;
$.mobile.loader.prototype.options.theme = "a";
$.mobile.loader.prototype.options.html = "<i class='custom-spinner'></i>";
});
</script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
<script>
$(document).on('pageshow', '#index', function(){
$.mobile.loading( 'show');
});
</script>
</head>
<body>
<div data-role="page" id="index">
<div data-theme="a" data-role="header">
<h3>
First Page
</h3>
<a href="#second" class="ui-btn-right">Next</a>
</div>

<div data-role="content">

</div>

<div data-theme="a" data-role="footer" data-position="fixed">

</div>
</div>
</body>
</html>

jQuery 移动 ajax 加载器的编程执行

某些浏览器,包括像 Chrome 这样的 webkit 浏览器,可以以编程方式执行 jQuery 移动 ajax 加载器。它们可以使用 serinterval 手动执行,如下所示:

$(document).on('pagebeforecreate', '#index', function(){     
var interval = setInterval(function(){
$.mobile.loading('show');
clearInterval(interval);
},1);
});

$(document).on('pageshow', '#index', function(){
var interval = setInterval(function(){
$.mobile.loading('hide');
clearInterval(interval);
},1);
});

关于jQuery 移动显示加载器用于自定义加载过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16336327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com