#html #css #css3 #svg #анимация
Я хочу вращать polygon вокруг круга. Я хочу зафиксировать отправную точку полигона в центре круга, подобно этому - http://www.enspiregroup.com Я много пробовал, но не достиг этой цели. Мой код ниже CSS и HTML5 .circle-segment { position: absolute; top: 0; width: 260px; height: 260px; } div .circle-wrap { position: absolute; max-width: 360px; margin: 0 auto; top: 107px; left: 29.7%; } main.css:1032 .circle-wrap { width: 362px; height: 362px; } .main-circle { position: relative; height: 300px; width: 300px; background-color: #0c272e; border-radius: 50%; margin: 15px auto; }
Ответы
Ответ 1
Конкретно в этом примере svg вообще не нужен: .circle { width: 200px; height: 200px; border-radius: 50%; margin: 40px; position: relative; background-color: cadetblue; } .circle:before { content: ''; width: 220px; height: 220px; position: absolute; top: -10px; left: -10px; background: linear-gradient(rebeccapurple, rebeccapurple) no-repeat 110px 110px; border-radius: 50%; animation: rotate 2s linear infinite; } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } Более того, анимированным svg элементом практически нельзя управлять, а автор сообщения именно это и хотел. Вращение сектора происходит при прокрутке страницы. var circle = document.querySelector('.circle'); window.addEventListener('scroll', function(){ circle.style.transform = 'rotate(' + window.pageYOffset + 'deg)'; }); body { min-height: 2000px; } .circle { width: 200px; height: 200px; border-radius: 50%; margin: 10px; position: fixed; background-color: cadetblue; transform: rotate(0deg); } .circle:before { content: ''; width: 220px; height: 220px; position: absolute; top: -10px; left: -10px; background: linear-gradient(rebeccapurple, rebeccapurple) no-repeat 110px 110px; border-radius: 50%; }Ответ 2
Я не знаю, почему сайт, на который вы указали, использует смесь HTML и SVG для создания этой анимации. Но это, конечно, не самый простой способ добиться этого. Гораздо проще просто поместить круг в SVG. И использовать команду анимации вращения svg
Ответ 3
Решение CSS По сравнению с вариантом решения SVG,- анимация вращения полигона на 360 градусов перенесена в правила CSS. В svg части остался только сам полигон. .main-circle { background-color: #0c272e; border-radius: 50%; height: 300px; margin: 15px auto; position: relative; width: 300px; } svg { animation: rotate 5s infinite linear; height: 362px; left: -31px; position: absolute; top: -31px; width: 362px; } @keyframes rotate { 100% { transform: rotate(360deg); } }
Комментариев нет:
Отправить комментарий