使用CSS旋转元素后使用高度/宽度100%

时间:2014-11-10 06:52:03

标签: javascript jquery html css css3

我有一个要旋转的元素(视频),然后使用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;
}

1 个答案:

答案 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)"})
 });
});