Это просто - нарисуйте дверь, используя дорожки в элементе <svg>
.
<svg xmlns="http://www.w3.org/2000/svg" id="svg-door">
<defs>
<pattern id="wood" patternUnits="userSpaceOnUse" width="1024" height="768">
<image xlink:href="http://i.imgur.com/Ljug3pp.jpg" x="0" y="0" width="1024" height="768" />
</pattern>
</defs>
<path xmlns="http://www.w3.org/2000/svg" d="
M0,0 225,0 225,300 0,300 z
M165,10, 215,10 215,80 165,80 z
" fill="url(#wood)" fill-rule="evenodd"/>
</svg>
CSS-:
#svg-door {
background-image: url(http://pcdn.500px.net/15548893/7f3b7c411716b1fb29c5cffb3efcf8ce33eacd76/15.jpg);
background-size: cover;
box-sizing: border-box;
padding: 100px;
width: 100%;
height: 500px;
}
Преимущество этого метода заключается в том, что ваш фон может быть что угодно, и окно является подлинным окно (сквозной).
Я предварительно вычислены пути для вас, и вы можете найти новую дверь в вилке, которое я создал с вашей скрипки - http://jsfiddle.net/teddyrised/qS4G7/
[Edit] Для полноты, я также использовал деревянную текстуру как фоновое изображение для пути svg.
Вместо того, чтобы «разрезать отверстие» в div, в зависимости от ваших потребностей, вы можете поместить фон в окно над дверью div. – gpasci
Спасибо за ваши комментарии, я мог бы использовать фоновое изображение для имитации прозрачности, я не могу использовать холст, поскольку дверь 3D и перемещается вокруг – CR41G14
Я бы рекомендовал использовать метод '