Responsive design 防止fitVids吸引视频

Responsive design 防止fitVids吸引视频,responsive-design,fitvids,Responsive Design,Fitvids,我的网站上有fitVids。但是,我想知道是否有可能阻止fitVids将视频放大到超出其定义的高度/宽度。例如,如果视频的宽度为600px,但容器的宽度为800px,fitVids会将视频放大到800px,并且视频会变得模糊。我只希望fitVids在容器缩小时缩小视频,以适应较小的设备。可能吗 jQuery(document).ready(function(){ // Target your .container, .wrapper, .post, etc. $("#thing-with

我的网站上有fitVids。但是,我想知道是否有可能阻止fitVids将视频放大到超出其定义的高度/宽度。例如,如果视频的宽度为600px,但容器的宽度为800px,fitVids会将视频放大到800px,并且视频会变得模糊。我只希望fitVids在容器缩小时缩小视频,以适应较小的设备。可能吗

jQuery(document).ready(function(){
  // Target your .container, .wrapper, .post, etc.
  $("#thing-with-videos").fitVids();
});
很简单

假设“thing with videos”是您调用的包装器的ID。fitvids()

因此,只需设置此容器的最大宽度css属性

例如:

#thing-with-videos {
max-width: 600px;
margin: 0px auto;
}
这不会让你的视频宽度超过600像素。边距属性将居中显示视频容器

现场编辑演示-

在“视频容器宽度”文本框中设置自定义宽度并观看预览

-帕特里克

很简单

假设“thing with videos”是您调用的包装器的ID。fitvids()

因此,只需设置此容器的最大宽度css属性

例如:

#thing-with-videos {
max-width: 600px;
margin: 0px auto;
}
这不会让你的视频宽度超过600像素。边距属性将居中显示视频容器

现场编辑演示-

在“视频容器宽度”文本框中设置自定义宽度并观看预览


-Patrick

Patrick的回答最终让我意识到我可以在iframe上设置最大宽度

#fitvids_container {
    max-width: 600px;
}

#fitvids_container iframe {
    max-width: 500px;
}
但是,如果您使用大量视频(大小不同),您可能希望动态地执行此操作。使用jQuery,我们可以从iframe属性中获取宽度,并将其设置为最大宽度样式规则。但是,只有在嵌入代码中包含了width属性时,这才有效。这只是一个示例,但可以适应
.each()
循环,或者至少将容器div重命名为类

var width = $('#fitvids_container').find('iframe').attr('width');

if (typeof width !== undefined) {
    $('#fitvids_container').find('iframe').css('maxWidth', width + 'px');
}

参见我的示例:

Patrick的回答最终让我意识到我可以在iframe上设置最大宽度

#fitvids_container {
    max-width: 600px;
}

#fitvids_container iframe {
    max-width: 500px;
}
但是,如果您使用大量视频(大小不同),您可能希望动态地执行此操作。使用jQuery,我们可以从iframe属性中获取宽度,并将其设置为最大宽度样式规则。但是,只有在嵌入代码中包含了width属性时,这才有效。这只是一个示例,但可以适应
.each()
循环,或者至少将容器div重命名为类

var width = $('#fitvids_container').find('iframe').attr('width');

if (typeof width !== undefined) {
    $('#fitvids_container').find('iframe').css('maxWidth', width + 'px');
}

请参见我的示例:

helgatheviking的解决方案限制视频的宽度,但不限制高度。如果您的容器比视频宽,那么最终会得到一个非常高的、带字母框的视频。高度很容易固定,使用相同的技术来约束宽度。但是,还有第三个变量

fitVids使用“fluid width video wrapper”类将iframe包装在一个div中,并将padding top设置为等于视频的纵横比。即使高度和宽度受到限制,如果流体宽度视频包装没有最大高度,它仍将与视频一样高。所以,视频下面有一堆空白

在初始化fitvids之前,您不必设置所有三个值(宽度、高度和填充),而可以通过使用最大宽度将iframe包装在div中来简化一切

var vidFrame = $('#fitvids_container').find('iframe');
var vidWidth = vidFrame.attr('width');

if (typeof vidWidth !== undefined) {
    // Wrap the iframe in a Div with max-width defined
    vidFrame.wrap('<div style="max-width:' + vidWidth + 'px;"></div>');
}

// Initialize fitVids
$('#fitvids_container').fitVids();
var vidFrame=$('fitvids_container')。查找('iframe');
var vidWidth=vidFrame.attr('width');
if(vidWidth的类型!==未定义){
//将iframe包装在定义了最大宽度的Div中
vidFrame.wrap(“”);
}
//初始化fitVids
$('fitvids_container').fitvids();

与helgatheviking的解决方案类似,如果每页有多个视频,则必须计算每个视频的最大宽度。

helgatheviking的解决方案限制视频的宽度,但不限制高度。如果您的容器比视频宽,那么最终会得到一个非常高的、带字母框的视频。高度很容易固定,使用相同的技术来约束宽度。但是,还有第三个变量

fitVids使用“fluid width video wrapper”类将iframe包装在一个div中,并将padding top设置为等于视频的纵横比。即使高度和宽度受到限制,如果流体宽度视频包装没有最大高度,它仍将与视频一样高。所以,视频下面有一堆空白

在初始化fitvids之前,您不必设置所有三个值(宽度、高度和填充),而可以通过使用最大宽度将iframe包装在div中来简化一切

var vidFrame = $('#fitvids_container').find('iframe');
var vidWidth = vidFrame.attr('width');

if (typeof vidWidth !== undefined) {
    // Wrap the iframe in a Div with max-width defined
    vidFrame.wrap('<div style="max-width:' + vidWidth + 'px;"></div>');
}

// Initialize fitVids
$('#fitvids_container').fitVids();
var vidFrame=$('fitvids_container')。查找('iframe');
var vidWidth=vidFrame.attr('width');
if(vidWidth的类型!==未定义){
//将iframe包装在定义了最大宽度的Div中
vidFrame.wrap(“”);
}
//初始化fitVids
$('fitvids_container').fitvids();

与helgatheviking的解决方案类似,如果每页有多个视频,则必须计算每个视频的最大宽度。

一个选项是对fitvids代码进行一个小的修改,该代码检查数据的maxwidth属性,如果找到,则使用max width样式包装div,以限制调整大小的iframe

这允许独立指定每个视频的最大宽度行为

比如说。将数据maxwidth属性添加到iframe

<iframe width="560" height="315" data-maxwidth="560" src="https://www.youtube.com/embed/L-UIiRlydow" frameborder="0" allowfullscreen=""></iframe>

然后将以下代码段添加到fitVides.js文件中,$allVideos.each函数末尾,紧跟$this.removeAttr('height').removeAttr('width')

if($this.data(“maxwidth”))
$this.parent('.fluid width video wrapper').wrap('.parent().css('max-width',$this.data('maxwidth'));

一个选项是对fitvids代码进行一个小的修改,该代码检查数据maxwidth属性,如果找到,则使用max width样式包装div,以限制调整大小的iframe

这允许独立指定每个视频的最大宽度行为

比如说。将数据maxwidth属性添加到iframe

<iframe width="560" height="315" data-maxwidth="560" src="https://www.youtube.com/embed/L-UIiRlydow" frameborder="0" allowfullscreen=""></iframe>

然后在$allVideos.each文件末尾,将以下代码段添加到fitVides.js文件中