设置iframe样式然后使其可见

时间:2014-05-27 09:11:57

标签: javascript jquery css iframe twitter

我在我的网站中使用了一个位于iframe中的Twitter小部件。我正在设置这个iframe没有任何问题。 我遇到的问题是,我首先看到旧的让我们说iframe然后我可以看到风格的更改。 有没有办法隐藏iframe,而所有css /样式更改都在背景上发生,然后让它可见?

我使用这个jquery:

 $(document).ready(function(){
    hideTwitterBoxElements();
 });

 var hideTwitterAttempts = 0;

 function hideTwitterBoxElements() {
   setTimeout( function() {

    if ( $('[id*=twitter]').length ) {
        $('[id*=twitter]').each( function(){
            var ibody = $(this).contents().find( 'body' );

            ibody.find(".timeline .stream").css("padding-top", "10px")

            if ( ibody.find(".timeline .stream .h-feed li.tweet").length ) 

                ibody.find(".timeline").css("background-color","transparent");  
                ibody.find(".customisable-border").css("border","none");    
                ibody.find(".timeline .stream").css("overflow","hidden");   

            }
        });
    }
    hideTwitterAttempts++;
    if ( hideTwitterAttempts < 3 ) {
        hideTwitterBoxElements();
        $("#twitter").show();
    }
}, 1500);

}

当我加载页面时,iframe会在一段时间后出现(如果可能的话我也想减少时间),然后我可以看到溢出更改为隐藏。

提前致谢。

1 个答案:

答案 0 :(得分:0)

编辑:

使用this one对代码进行混搭,我们得到了相当不错的结果。

JSFiddle

function hideTwitterBoxElements() {

    var hideTwitterAttempts = 0;

    if ($('.twitter-timeline').length) {
        //Timeline exists is it rendered ?
        interval_timeline = false;
        interval_timeline = setInterval(function(){
            //console.log($('.twitter-timeline').width());
            if ($('.twitter-timeline').hasClass('twitter-timeline-rendered')) {
                if ($('.twitter-timeline').width() > 10) {
                    //Callback
                    clearInterval(interval_timeline);
                    setTimeout( function() {
                        if ( $('[id*=twitter]').length ) {
                            $('[id*=twitter]').each( function(){
                                var ibody = $(this).contents().find( 'body' );
                                ibody.find(".timeline .stream").css("padding-top", "10px");
                                if ( ibody.find(".timeline .stream .h-feed li.tweet").length ); 
                                ibody.find(".timeline").css("background-color","transparent");  
                                ibody.find(".customisable-border").css("border","none");    
                                ibody.find(".timeline .stream").css("overflow","hidden");
                            });
                        }
                        hideTwitterAttempts++;
                        if ( hideTwitterAttempts < 40 ) {
                            hideTwitterBoxElements();
                            $("#twitter").show();
                        }
                    }, 100);
                }     
            }
        },200);
    }
}

$(document).ready(function(){
    hideTwitterBoxElements();
});