Цел
Бих искал да създам анимиран многоъгълник, който има части от него подрязани/изрязани/маскирани, така че слоят/елементът/фонът под него да може да се вижда по следния начин:
Създадох анимация с трансформация на CSS3. Това е въртящ се блок, който изглежда сякаш долните му части са подрязани по време на движение. Бих искал подрязаната част да показва какво всъщност е зад/под въртящия се блок (така че неговия фон).
Това, което опитах
Илюзионно решение
За едноцветни фонове можете просто да добавите фигура върху анимацията, така че да създадете илюзията, че е отрязана.
Това очевидно не работи със снимки:
Ограничено решение
Ако трябва да отрежете страните с правоъгълна форма, можете да направите това чрез родителски елемент, но това има очевидни ограничения. Как да направя нещо подобно, но с произволен многоъгълник? Можете ли да маскирате в CSS?
body {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAG0lEQVQYV2NMqL7ty4ADMIIkF7SqbsYmP+gkAbAbGgsk/ddhAAAAAElFTkSuQmCC);
}
.center {
width: 200px;
margin: 0 auto;
padding-top: 50px;
height: 100px;
overflow: hidden;
}
.block {
height: 100px;
width: 100px;
background-color: red;
z-index: -1;
transition: transform 1000s 0s linear;
margin-left: 50px;
}
@keyframes rotating {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.rotate {
animation: rotating 2s linear infinite;
}
<div class="center">
<div class="block rotate"></div>
</div>