我正在运行一个jQuery函数,它应该根据视频的宽度来修改它的宽度。
我有一堆视频在我的页面,我想让它们适应视频容器,它有一个固定的宽度。所以,在我检查视频宽度是否高于容器的函数之前,应该将视频宽度更改为100%,而不是自动,这是所有视频最初所具有的属性。
这是函数
$(document).ready(function () {
$('video').each(function() {
if ($(this).css('width')>$('.player-container')[0].css('width'))
{
$(this).css('width', '100%');
}
});
});如何放置每一段视频:
<div class="player-container">
<video class="player-video" width="auto" height="auto">
<source src="video/mana-labios-compartidos.mp4">
<source src="video/mana-labios-compartidos.webm">
</video>
// more stuff about the video...
</div>问题是,我在每个.each()中放置了一个警报,而我只看到一个,它实际上是为页面的第一个视频而弹出的。
发布于 2014-01-15 19:26:29
.css()是一个应该在jQuery对象上使用的方法,但是您在jQuery对象内的DOM元素上使用它。此外,它还返回一个在您的情况下无用的字符串,因此您需要使用.width(),它返回一个整数。如果需要按索引指定元素,请使用.eq()。
您完成的代码应该是这样的:
$(document).ready(function () {
$('video').each(function() {
if ($(this).width() > $('.player-container').eq(0).width()){
$(this).css('width', '100%');
}
});
});这可能不适合您,但我认为仅通过将每个视频元素上的max-width设置为100%即可达到同样的效果:
.player-container video {
max-width: 100%;
}https://stackoverflow.com/questions/21146308
复制相似问题