gpt4 book ai didi

javascript - 在动态加载div内容之前添加图片jquery

转载 作者:行者123 更新时间:2023-11-28 00:14:36 25 4
gpt4 key购买 nike

我有一个 iframe,我将在其中显示文本文件中的内容。它将不断检查文件夹中是否有文本文件。直到文本文件不存在时,我希望它显示 gif 或图像,内容到达后它会显示内容,gif 将被隐藏。我怎样才能使用 jquery 和 HTML 来做到这一点。我写的代码如下:

<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
setInterval(my_function,5000);
function my_function(){
console.log("reloading...");
$('#printdiv').load(location.href);
}
</script>
</head>
<body>
<div>
<div id="printdiv">
<p><iframe id = "frame1" src="test.txt" frameborder="0" width="95%">
<img id = "imgProg" alt = "Progress" src = "ajax-loader.gif" visible =
"false"/>
</div>
</iframe></p>
</div>
</body>
</html>

帮助将不胜感激

最佳答案

我在下面所做的是 iframe 的简化方法等待加载,同时在后台显示 gif。当 iframe完全加载后,gif 消失。请注意,这是特定于 jQuery 的。

我已经删除了 <img>你的代码,这是行不通的。我通过向 div#printdiv 添加一个类来简化它称为 load-gif并给了它background造型。

我还添加了一个不透明度函数。否则,当 gif 仍在后台时,您会看到页面正在 iframe 中加载。为了避免这种情况 iframe在完全加载之前是不可见的 ( opacity: 0; ),然后不透明度变回 opacity: 1; .

body {
height: 40vw;
width: 100%;
background-color: #e4e4e4;
}

#printdiv {
display: flex;
align-items: center;
justify-content: center;
border: 1px solid #e4e4e4;
height: 100%;
margin: 3em;
}

#printdiv>p,
body>div,
#frame1 {
width: 100%;
height: 100%;
}

#printdiv,
#frame1 {
background-color: white;
}


/* Below CSS are the important factors, above is just example styling. */

#frame1 {
opacity: 0; /* set at 0 to avoid gif and iframe mixture in the same div */
}

.load-gif { /* extra class to load gif */
background: url(https://loading.io/assets/img/ajax.gif) center no-repeat;
background-size: contain;
}
<!-- begin snippet: js hide: false console: true babel: false -->
<html>

<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
jQuery(document).ready(function() { // starts DOM page is ready
jQuery("#frame1").on("load", function() { // when iframe is completely loaded
jQuery(".load-gif").css("background", "unset"); // removes gif
jQuery(this).css("opacity", "1"); // set opacity to normal value
});
});
</script>
</head>

<body>
<div>
<div id="printdiv" class="load-gif">
<p>
<iframe id="frame1" src="/" frameborder="0"></iframe>
</p>
</div>
</div>
</body>

</html>

另一种方法是删除 load-gif完全在iframe之后上课已加载。 jQuery 看起来像这样:

jQuery(document).ready(function() { // starts DOM page is ready
jQuery("#frame1").on("load", function() { // when iframe is completely loaded
jQuery('#printdiv').removeClass("load-gif"); // removes gif class
jQuery(this).css("opacity", "1"); // set opacity to normal value
});
});

关于javascript - 在动态加载div内容之前添加图片jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55189697/

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