Думаю что вопрос актуальный. Так что напишу.
Есть библиотека
Stickjaw.js
Подключаете в футоре и вызываете скриптов ( в документации написано, ни чего сложного )
Чтобы сделать высоту такой же как ширину нужно в блок добавить атрибут data-proportion-h="1". 1 - это пропорция. Если вам нужно сделать, чтобы высота была как две ширины то пишите 2 т.е data-proportion-h="2"
Например
<div data-proportion-h="1" style="widht:200px;"></div><!-- Высота 200px -->
<div data-proportion-h="2" style="widht:200px;"></div><!-- Высота 400px -->
<div data-proportion-h="0.5" style="widht:200px;"></div><!-- Высота 100px -->