Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to resize the video in HTML5 dynamically?

we have the requirement in the project that having 3 videos in an html page like shown in the following image.

enter image description here

Now by clicking at the bottom-right corner on each of this video user can resize the video and accordingly the size of other videos will change. The problem i am facing here is how to resize the video by just pressing and dragging the mouse click on the bottom-right corner of each video, i've tried using resize property of video tag but it resizes the width and height of the controllers of the video. Do i have to use any third party API or JavaScript or am i doing any silly mistake?

by doing some RND on this i came to know about canvas. but doesn't get any idea how to use it with video together.

can anyone please guide me here? Any kind of help would be greatly appreciated.

CODE :

<!DOCTYPE html>
<html>
<head>
 <style>
   video{
     resize:both;
   }
 </style>
</head>
<body>
<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">      
</video>

</body>
</html>
like image 565
KunalK Avatar asked Mar 29 '13 07:03

KunalK


People also ask

How do I resize a video in CSS?

Set min-height and min-width 100% > this makes the video resize to something really huge that overflows the div. position:absolute, bottom, top, left and right: 0px also a huge flow over the parent div.

How do you keep the aspect ratio of a video?

All you need to do is set the width to 100% and the height to auto. This will create a video that fills the entire parent and its height will be calculated automatically based on the width so that it maintains its current aspect ratio no matter the screen size.


1 Answers

To be honest it's a little bit confusing that you have so many resize handles. It also makes things pretty complicated.

This is what I came up so far, this should give you a good sense of the complete implementation:

var $cont = $('#container'),
    contWidth = $cont.width(),
    contHeight = $cont.height(),
    $one = $('#one'),
    $two = $('#two'),
    $ltop = $one.find('.ltop'),
    $lbot = $one.find('.lbot');

$ltop.resizable({
    handles: 'se',
    minWidth: '100',
    maxWidth: '400',
    resize: function() {
        var width = $(this).width(),
            height = $(this).height(),
            remSpaceH = contWidth - width,
            remSpaceV = contHeight - height;

        $one.width(width);
        $two.width(remSpaceH - ($two.outerWidth() - $two.width()));

        $lbot.height(remSpaceV - ($lbot.outerHeight() - $lbot.height()));
    }
});

Demo: http://jsfiddle.net/dfsq/KuAsz/

like image 190
dfsq Avatar answered Sep 19 '22 23:09

dfsq