如何使用jquery循环iframe?

时间:2015-06-03 06:49:24

标签: jquery loops iframe settimeout setinterval

我有两个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)

以上也不能顺利加载。如何无缝显示/隐藏它们?

4 个答案:

答案 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);
}
});

查看Fiddle Link

答案 3 :(得分:0)