动态提供iframe并获取高度

时间:2015-12-07 13:37:58

标签: jquery

我的大脑即将崩溃而且无法得到这个......¿有人可以帮助我吗?

我正在尝试创建一个页面,其中内容以dinamically方式加载到#section-master iframe中,当我单击菜单按钮(a.launcher)时,它会上下滑动以隐藏旧内容/显示新内容。问题是,我无法获得正确加载内容的“主要部分”的正确高度

index.php代码如下:

    <div>
        <a data-url="main-about.php" href="#" class="launcher">ABOUT</a>
        <a href="#contacts" class="scroll-to animated bounceInDown">CONTACT</a>
        <a data-url="main-home.php" href="#" class="launcher">HOME </a>
        <a data-url="main-works.php" href="#" class="launcher">WORKS</a>
</div>


    <section id="section-master">
        <div class="accordion"
            <iframe onload="setIframeHeight(this.id)" width="100%" frameborder="0" id="master-iframe" name="master-iframe" src="main-home.php" </iframe>
        </div>
    </section>

这就是我试图获得效果的方式

    get_div_height();
    $(".launcher").each(function(){
    var el = $(this);
    el.click(function() {
        get_div_height();
        alert(get_div_height);
        $( '#section-master' ).animate({marginTop: -div_height}).delay(300).queue(function (next) {
            $("#master-iframe").attr("src", el.data('url'));
            next();
        }).queue(function (next) {
            $( '#section-master' ).animate({marginTop: 0});
            next();
        }); 
    })
});
function get_div_height(){
    var div_height = $('#section-master').height();
}

1 个答案:

答案 0 :(得分:0)

非常感谢你的帮助,我在几分钟之后就得到了解决方案。在这里发布代码以防万一对某人有帮助:

每次调用#section_master时都调用get_div_height函数,就是这样;)

// Launch content into iframe 

$("#section-master").load(function(){
    get_div_height();
});

$(".launcher").each(function(){
    var el = $(this);
    el.click(function() {
        var sHeight = $('#section-master').height();
        $( '#section-master' ).animate({marginTop: -sHeight}).delay(300).queue(function (next) {
            $("#master-iframe").attr("src", el.data('url'));
            next();
        }).queue(function (next) {
            $( '#section-master' ).animate({marginTop: 0});
            next();
        }); 
    })
});

function get_div_height(){
    var div_height = $('#section-master').height();
}