#css #svg #css-animations
#css #svg #css-анимация
Вопрос:
Я пытался следить за форумами, чтобы решить проблему, с которой я столкнулся, но мне не повезло. Я пытаюсь вращать эту букву по центральной оси, но вместо этого она перемещается по странице.
Я добавил transform-origin: center center; что, похоже, является ответом, но, похоже, это не влияет на мою анимацию.
Я пропустил здесь очень важную строку кода?
Код
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="28.2878in" height="8.5in" viewBox="0 0 2036.7197 612"><defs><style>.cls-1{fill:#010101;}</style></defs><title>StableLogo-Wordmark</title>
<!-- BIG S -->
<path class="big-s spin-this" transform="translate(-154 -131)" d="M362.2168,367.2317c23.8106,16.6907,51.0516,32.82,83.83,32.82,32.1888,0,56.8072-10.392,56.8072-33.4934,0-22.7209-10.6044-34.0863-70.4407-43.93-59.8364-10.6044-89.757-33.7058-89.757-78.3966,0-46.9588,39.96-79.6635,99.4161-79.6635,36.6579,0,63.8458,7.9425,97.4489,28.7153l-18.0235,37.88c-33.9085-17.7179-47.9607-24.0272-78.4851-24.0272-30.6717,0-49.227,14.75-49.227,35.9591,0,19.3162,10.6044,28.7841,67.4117,38.6325,65.1385,10.98,93.5422,35.2179,93.5422,81.8012,0,49.6124-39.7691,83.9606-109.8293,83.9606-38.3944,0-79.8883-17.5373-102.94-38.04Z">
<style>
.spin-this {
-webkit-animation-name: spin;
-webkit-animation-duration: 4000ms;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
-moz-animation-name: spin;
-moz-animation-duration: 4000ms;
-moz-animation-iteration-count: infinite;
-moz-animation-timing-function: linear;
-ms-animation-name: spin;
-ms-animation-duration: 4000ms;
-ms-animation-iteration-count: infinite;
-ms-animation-timing-function: linear;
animation-name: spin;
animation-duration: 4000ms;
animation-iteration-count: infinite;
animation-timing-function: linear;
transform-origin: center center!important;
}
@-ms-keyframes spin {
from { -ms-transform: rotate(0deg); }
to { -ms-transform: rotate(360deg); }
}
@-moz-keyframes spin {
from { -moz-transform: rotate(0deg); }
to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
from { -webkit-transform: rotate(0deg); }
to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
from {
transform:rotate(0deg);
}
to {
transform:rotate(360deg);
}
}
</style>
</path>
</svg>
Комментарии:
1. Я не уверен, но я думаю, что проблема может быть в самом вашем SVG, а не в анимации. Вы пытаетесь вращаться вокруг центра
S
? Из-за смещенияS
от центра в SVG, что приведет к анимации, которую вы видите.2. Добавьте
transform-box: fill-box;
.spin-this
, пожалуйста, прочтите это: MDN — transform-box . Безtransform-box: fill-box;
буквы вращается вокруг центра элемента svg.3. Спасибо! Transform-box: fill-box исправил это правильно.
4. Поддержка браузера Bare in mind
transform-box
ограничена, обязательно проверьте ссылку в комментарии enxaneta. На данный момент он не поддерживается во всех браузерах Microsoft.5. @DBS, хотя
transform-box
и имеет ограниченную поддержку браузера, в тех браузерах, в которых нет поддержки, буква будет правильно вращаться вокруг своего центра.