我有两个iframe。当页面加载时,iframe1会在8秒后加载,我需要在无限循环中显示iframe2替换iframe1。
我尝试了以下代码并将超时设置为8秒和10秒,但iframe1在2秒内更改。
function preview() {
$('#iframe1').hide();
$('#iframe2').show();
setTimeout(function() {
$('#iframe2').hide();
$('#iframe1').show();
}, 8000);
};
setInterval(preview, 10000)
以上也不能顺利加载。如何无缝显示/隐藏它们?
答案 0 :(得分:2)
您可以使用递归函数执行此操作并传递参数
$('#iframe2').hide();
animateInfinite('#iframe', 1)
function animateInfinite(str, last) {
$(str + last).show();
setTimeout(function () {
$(str + last).hide();
animateInfinite('#iframe', ((last == 1) ? 2 : 1));
}, 8000)
}
或使用setinterval
var iframe = $('[id^=iframe]').hide();
iframe.eq(0).show();
setInterval(function () {
iframe.toggle();
}, 1000);
<强> DEMO 强>
答案 1 :(得分:1)
你可以切换;
function preview() {
$('#iframe1').toggle(500);
$('#iframe2').toggle(500);
};
setInterval(preview, 10000)
答案 2 :(得分:0)
首先展示第二个iframe
function preview() {
$('#iframe1').hide();
$('#iframe2').show();
};
setInterval(preview,10000);
现在检查第二个iframe是否为visible
if($('#iframe2').is(':visible')){
setTimeout(function() {
$('#iframe2').hide();
$('#iframe1').show();
}, 8000);
}
编辑:您必须将代码放在document.ready
$(function(){
if($('#iframe2').is(':visible')){
setTimeout(function() {
$('#iframe2').hide();
$('#iframe1').show();
}, 8000);
}
});
答案 3 :(得分:0)