我有一个要旋转的元素(视频),然后使用100%的宽度和高度。在应用旋转之前,视频占据100%的宽度和高度。旋转后,尺寸似乎保持与旋转之前相同。我想重新应用宽度和高度100%来使视频适应新状态。
目标是尝试以横向呈现视频,即使div(或手机)处于纵向模式。
这是我尝试做的事情的JSFiddle: http://jsfiddle.net/a1sLp5gn/2/
在小提琴中,单击按钮以查看所需状态的视频。
视频包含在一个容器div中,该容器div显示它被电话屏幕(红色边框,我想用视频填充此div)框起来。
使用点击按钮后运行的JS,我能够实现我的目标,但我是以一种丑陋的方式做到这一点 - 而且我想知道实现我正在做的事情的适当/最佳方式是什么。
这是CSS(更好地检查我提供的小提琴链接,我只是把它放在这里,因为stackoverflow需要一些代码,当有小提琴链接时):
video {
transform:rotate(90deg);
height:100%;
width:100%;
}
.container {
border-style:solid;
border-width:1px;
border-color: red;
height:640px;
width:360px;
}
答案 0 :(得分:2)
我希望这可以帮到你: 即使您旋转元素,高度,宽度,左侧和顶部属性也是在未加工的元素上计算的。您必须考虑容器尺寸并手动反转值。 通常旋转使元素的中心点作为参考。 (您可以使用transorm-origin进行更改,但如果视频元素已经居中,则不需要这种情况)
$(function() {
$('button').click(function() {
var container = $("video").parent()
$('video').height($(container).width());
$('video').width($(container).height());
$('video').css('position', 'absolute')
var px = $(container).width() / 2
var py = $(container).height() / 2
$('video').css('left', px-py).css('top', py-px);
//$("video").css({"transform":"rotate(90deg)"})
});
});