Задать вопрос
@konstantinst13

Как использовать растровое изображение в html-маске?

Всем доброго времени суток!

Вот в этой статье про html-маски написано, что в них можно использовать не только svg, но и растровые изображения:
css.yoksel.ru/svg-masks

Мне нужно использовать html-маски, чтобы обрезать фотографии по нужным фигурам. В фотошопе обрезать фотографии по нужным фигурам я не могу, т.к. в будущем будет крутящаяся анимация и надо будет, чтобы фигура вращалась, а фото стояло на месте. Анимировать буду маску, а не картинку.

Я с svg не очень дружу. Я пытался вставлять path из svg в mask, но это сработало правильно только с rect.

Мне нужно добиться вот такого результата (сверху фотографии и как они должны быть обрезаны масками, снизу - формы нужных масок, по которым обрезать фотки).

606ef4943caee556485810.png

Это для сайта https://www.umark.it/

Должности и фото увеличиваются, если навести курсор на фото или должность.

Вот такой код я использую для обрезки фото в виде ромба:
(Это для менеджера проекта)
<div data-id="project-manager" class="animated-mask animated-mask_worker-1">
                    <svg class="animated-mask__svg" viewBox="0 0 1 1" xmlns="http://www.w3.org/2000/svg">
                        <mask id="worker-1-mask">
                            <rect class="worker-1-mask__path" fill="#fff" height="1" width="1" style="transform: scale(0.65) rotate(126.65deg) translateZ(0px); transform-origin: 0.5px 0.5px;"></rect>
                        </mask>
                        <image class="animated-mask__img animated-mask__img_default opacity_1" height="1" href="assets/img/header/workers/worker-1/photo__4x.png" mask="url(#worker-1-mask)" width="1"></image>
                        <image class="animated-mask__img animated-mask__img_hover" id="active-square" height="1" href="assets/img/header/workers/worker-1/hover__4x.png" mask="url(#worker-1-mask)" width="1" style="transition: all 0.3s linear 0s;"></image>
                    </svg>
                </div>


Вот такой код для маски в форме прямоугольника с вырезанным в угле прямоугольником:
(это для smm-специалиста)
<div data-id="smm" class="animated-mask animated-mask_worker-2" style="z-index: 0; height: 195px; width: 186px;">
                    <svg class="animated-mask__svg" viewBox="0 0 1 1" xmlns="http://www.w3.org/2000/svg">
                        <mask id="worker-2-mask">
                            <rect class="worker-2-mask__path worker-2-mask__main-rect" fill="#fff" height="1" width="1" style="transform: scale(0.76) rotate(-19deg) translateZ(0px);transform-origin: 0.5px 0.5px;"></rect>
                            <rect class="worker-2-mask__path worker-2-mask__sub-rect" fill="#000" height="1" width="1" style="transform: scale(0.26) rotate(-19deg) translate(1px, 2.25px);transform-origin: 0.502px 0.502px;transform-origin: -0.32px 0.502px;"></rect>
                        </mask>
                        <image class="animated-mask__img animated-mask__img_default opacity_1" height="1" href="assets/img/header/workers/worker-8/photo__4x.png" mask="url(#worker-2-mask)" width="1"></image>
                        <image class="animated-mask__img animated-mask__img_hover" id="s" height="1" href="assets/img/header/workers/worker-8/hover__4x.png" mask="url(#worker-2-mask)" width="1" style="transition: all 0.3s linear 0s;"></image>
                    </svg>
                </div>

В последнем коде в маске два rect, один большой непрозрачный, другой маленький прозрачный, в угле и обрезает видимую часть, чтобы получилась нужная фигура. Хотелось бы соединить их в один path, а как это сделать я не знаю. Поэтому я хочу использовать в mask вместо svg растровые изображения, а как это сделать - не знаю...
  • Вопрос задан
  • 84 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы