我有这个功能,当页面加载时会显示一个LOADING图像:
<script>
function onReady(callback) {
var intervalID = window.setInterval(checkReady, 1000);
function checkReady() {
if (document.getElementsByTagName('body')[0] !== undefined) {
window.clearInterval(intervalID);
callback.call(this);
}
}
}
function show(id, value) {
document.getElementById(id).style.display = value ? 'block' : 'none';
}
onReady(function () {
show('all', true);
show('loading', false);
});
</script>
我想要做的是添加一个fadeIn效果来显示div #all WHEN LOADING完成。
我可以在function show
中添加fadeIn效果吗?我可以使用jquery吗?有什么想法吗?
答案 0 :(得分:1)
您可以使用以下功能进行淡入&amp;使用javascript淡出效果。 CREDIT
function fadeIn(el, display) {
el.style.opacity = 0;
el.style.display = display || "block";
(function fade() {
var val = parseFloat(el.style.opacity);
if (!((val += .01) > 1)) {
el.style.opacity = val;
requestAnimationFrame(fade);
}
})();
}
function fadeOut(el) {
el.style.opacity = 1;
(function fade() {
if ((el.style.opacity -= .01) < 0) {
el.style.display = "none";
} else {
requestAnimationFrame(fade);
}
})();
}
并将您的节目功能更改为以下内容。
function show(id, value) {
var el = document.getElementById(id);
if(value)
fadeIn(el)
else
fadeOut(el);
}
答案 1 :(得分:1)
您可以使用jQuery的fadeIn
方法。例如
function show(id, value) {
if(value){
$("#" + id).fadeIn(2000);
} else{
$('#' +id).hide();
}
}
答案 2 :(得分:1)
将它放在“head”标签中:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
只需改变你的节目(): -
function show(id, value) {
if(value)
$("#"+id).fadeIn("2000");
else
$("#"+id).hide();
}