jquery 调整父子大小

发布于 2024-10-15 19:55:27 字数 708 浏览 2 评论 0原文

我有一个带有类嵌入和唯一 ID 的 div 容器。在容器 div 内,我有一个使用 iframe 或对象的嵌入播放器代码。例如:

<div class="embed" id"id21" style="width:480px; height:390px;">
<iframe width="480" height="390" src="http://www.youtube.com/embed/Oe_3KgfcCXs" frameborder="0" allowfullscreen></iframe>
</div>

当我调整 div 容器的大小时,我希望其中的播放器也调整大小。嵌入代码具有宽度和高度属性。我执行了以下操作,但无法使其工作。我需要通过容器的 id 来引用容器,因此,如果我有另一个具有不同 id 的容器,则调整大小应该仅对正在调整大小的容器生效,而不是对其他容器生效。

$('.embed').live({
    resize: function(event, ui) {
        var id = this.id;
        var height = $(id).height();
        var width = $(id).width();
        $(id).contents().attr({'width':width,'height':height});
    }
});

I have a div container with class embed and unique id. Inside the container div i have an embeded player code using either iframe or object. Ex:

<div class="embed" id"id21" style="width:480px; height:390px;">
<iframe width="480" height="390" src="http://www.youtube.com/embed/Oe_3KgfcCXs" frameborder="0" allowfullscreen></iframe>
</div>

When i resize the div container, i want the player inside it to resize as well. the embed code have the attributes of width and height. I did the following but unable to get it to work. I need to reference the container by it's id, so if i have another container with a different id, resizing should only take effect on the container being resized and non of the other containers.

$('.embed').live({
    resize: function(event, ui) {
        var id = this.id;
        var height = $(id).height();
        var width = $(id).width();
        $(id).contents().attr({'width':width,'height':height});
    }
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

憧憬巴黎街头的黎明 2024-10-22 19:55:27
$('.embed').live({
    resize: function(event, ui) {
        $(this).find("iframe").css(ui.size);
    }
});

这行不通吗?

$('.embed').live({
    resize: function(event, ui) {
        $(this).find("iframe").css(ui.size);
    }
});

Doesn´t this work?

少年亿悲伤 2024-10-22 19:55:27

如果您使用 CSS 以相对尺寸控制 iframeheightwidth,请说 %,然后调整其大小div 将自动调整 iframe 的大小:

iframe {
    height: 80%;
    width: 100%;
    margin: 0 auto;
}

只有当 .embed 具有定义的尺寸(如您的示例中所示)时,这才有效。


编辑修改html、css并提供演示 jQuery:

html:

<div class="embed" id="id21" style="width:480px; height:390px;">
    <iframe src="http://www.youtube.com/embed/Oe_3KgfcCXs" frameborder="0" allowfullscreen></iframe>
</div>

css

.embed {
    border: 5px solid #000;
    padding: 1em;
}

.embed:hover {
    border-color: #f90;
}

iframe {
    width: 100%;
    height: 100%;
    margin: 0 auto;
}

jQuery:

$('.embed').resizable(
    {
        aspectRatio: 1.23,
        minHeight: 390,
        minWidth: 480
     });

JS小提琴演示

If you use CSS to control the height and width of the iframe in relative dimensions, say % then resizing the div will automatically resize the iframe:

iframe {
    height: 80%;
    width: 100%;
    margin: 0 auto;
}

This will only work if .embed has, as in your example, defined dimensions.


Edited to amend html, css and provide demo jQuery:

html:

<div class="embed" id="id21" style="width:480px; height:390px;">
    <iframe src="http://www.youtube.com/embed/Oe_3KgfcCXs" frameborder="0" allowfullscreen></iframe>
</div>

css

.embed {
    border: 5px solid #000;
    padding: 1em;
}

.embed:hover {
    border-color: #f90;
}

iframe {
    width: 100%;
    height: 100%;
    margin: 0 auto;
}

jQuery:

$('.embed').resizable(
    {
        aspectRatio: 1.23,
        minHeight: 390,
        minWidth: 480
     });

JS Fiddle demo.

爱的十字路口 2024-10-22 19:55:27

试试这个:

$('.embed').live({
    resize: function(event, ui) {
        $(this).children()
            .width( $(this).width() )
            .height( $(this).height() );
    }
});

Try this:

$('.embed').live({
    resize: function(event, ui) {
        $(this).children()
            .width( $(this).width() )
            .height( $(this).height() );
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文