By
chester40
Здравствуйте. Прошу помочь в решении следующей задачи:
Имеется родительский элемент со свойством clip-path и дочерний элемент с анимацией:
Для примера:
HTML
<div id="logoimage-waves">
<div id="waves-animated"></div>
</div>
<svg>
<clipPath id="WavesPolygon">
<polygon points="0 0,95 0,95 8,80 5,60 10,40 15,20 20">
</polygon>
</clipPath>
</svg>
CSS
#logoimage-waves {
width: 100px;
height: 100px;
clip-path: url("#WavesPolygon");
-webkit-clip-path: polygon(0px 0px,95px 0px,95px 8px,80px 5px,60px 10px,40px 15px,20px 20px);
position: absolute;
}
#waves-animated {
width: 100px;
height: 100px;
position: absolute;
background: url(/images/waves.png) no-repeat;
animation: waves-animation 40s;
}
@keyframes waves-animation {
from {
transform:rotate(0deg);
}
to {
transform:rotate(-360deg);
}
}
Вопрос следующий:
В Firefox всё работает как надо, дочерний анимированный элемент обрезается с помощью свойства clip-path родительского элемента. Но в других браузерах (проверял в Chrome 55 и Opera 41) обрезка не работает и элемент показывается полностью. Причём, что важно, это происходит только в том случае, если дочерний элемент анимирован с помощью свойства transform, а если анимируется другое свойство, например margin, то обрезка работает во всех браузерах. Короче говоря: дочерние элементы анимированные с помощью transform не обрезаются с помощью clip-path родительского элемента в Хроме и Опере.
В общем задачка та еще. Второй день пытаюсь решить )
Благодарю за внимание!
Question
borus
Здравствуйте!
Делаю сайт на базе этого шаблона. По сравнению с исходным шаблоном добавил в разметку доп меню с желтыми пунктами Профсоюз и т.д. Это подменю c селектором .headerrow .cell_pad .moduletable:nth-child(2) спозиционировал абсолютно относительно верхнего края родительского элемента div.cell_pad, для чего последнему пришлось дать position:relative; После это вся анимация опустилась на высоту внедрённого элемента с селектором .headerrow .cell_pad .moduletable:nth-child(2). Почему? Ведь в мануале написано, что position:absolute должен заставлять соседние элементы, а именно первый div.moduletable, вести себя так, как будто следующего за ним позиционированного элемента нет совсем.
Начал менять свойства top у колеблющихся шаров и пчёл, уменьшая их на 200 px у всех. В итоге получилось поднять два правых шарика на нормальную высоту. Зато пчёлы и первый слева шар ведут себя не как в оригинале: пчелы в конце траектории скачут, как впрочем и левый шар.
Почему происходят такие скачки? Как их исправить?
Edited by borusLink to comment
Share on other sites
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.