JQuery根据iframe源设置iframe高度
JQuery set iframe height depending on iframe source
我使用下面的脚本来设置YouTube iframe的高度,这样它就可以保持16:9的高宽比。宽度始终为容器的100%。
脚本应该只设置YouTube视频的高度。如果页面上所有iframe的源都相同,则此操作有效。Youtube嵌入被正确设置,soundcloud嵌入被忽略,然而,一旦我使用Youtube和soundcloud源,它就会同时设置两者。这是有意义的,因为iframe的目标不是只设置源中包括youtu
的那些的高度。
如何使其仅设置源包含youtu
的iframe的高度?
<script>
function iframeSizing() {
$('iframe[src*="youtu"]').each(function() {
var containerWidth = $('iframe').width();
iframeWidth = containerWidth;
iframeHeight = 0.5625 * iframeWidth;
$('iframe').css({
'height': iframeHeight + 'px'
});
});
};
$(window).resize(iframeSizing);
$(document).ready(iframeSizing);
</script>
感谢
您的问题是一次又一次地使用$('iframe')
选择器,同时您的函数实际上不知道您指的是哪个iframe
。
.each()
函数中的选择器应该是$(this)
,而不是$(iframe)
。
因此,$(this).width()
和$(this).css()
基本上,.each()
函数的工作方式是循环使用$('iframe[src*="youtu"]')
的所有元素,然后在该函数内部,要引用循环所在的当前元素,应使用选择器$(this)
相关文章:
- 动态增加 iframe 高度
- iframe高度100%不起作用
- 动态iframe高度-似乎需要重新加载页面
- 如何更改其内容的 Iframe 高度(两者都来自同一域)
- 同位素布局中的动态iframe高度
- 跨域中的动态 iframe 高度
- 调整外部域中的 iframe 高度
- 根据内容高度调整 iframe 高度的大小
- jQuery-在Iframe内按钮的onclick事件中更改Iframe高度
- jQuery/CSS-单击IFRAME内容内的按钮时更改IFRAME高度
- 如何在单击Iframe内部的按钮时更改Iframe高度'的内容
- JQuery根据iframe源设置iframe高度
- 如何在浏览器调整大小时调整iframe高度
- 如何更改IFRAME高度时源它's在另一个域上
- 基于内容使用Javascript设置iframe高度
- iframe高度在页面内容较长后不会缩小
- 为什么可以't从iframe内部的jquery更改iframe高度
- 根据内部内容使iframe高度动态化 - JQUERY/Javascript
- 如何根据元素高度动态调整iframe高度
- 动态调整动态更改内容高度的iFrame高度(内部说明)