Tôi đang cố gắng triển khai hoạt ảnh CSS bằng cách sử dụng svg.
Tôi hy vọng rằng 2 hộp svg đang quay (quay) với transform-origin: center center;
360 độ. Dường như nó hoạt động những gì tôi mong đợi với Chrome và Firefox nhưng không phải với macOS 10.12 (High Sierra) và iOS 11.0.x và 11.1 beta Safari.
Có vẻ như transform-origin: center center;
không hoạt động trong Safari?Làm thế nào để sửa chữa nguồn gốc biến đổi bị hỏng trên iOS11 và macOS10.12 Safari?
Có cách nào để khắc phục sự cố này không?
Những gì tôi mong đợi:
gì tôi nhìn thấy trên Safari:
Dưới đây là một số mẫu mã
HTML:
svg(width=500, height=500, viewBox='0 0 500 500')
rect(x=100, y=100, width=50, height=100)
rect(x=400, y=100, width=50, height=100)
CSS:
@keyframes rotate {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
rect {
transform-origin: center center;
animation-duration: 3s;
animation-name: rotate;
animation-iteration-count: infinite;
animation-timing-function: linear;
&:nth-child(1) {
fill: red;
}
&:nth-child(2) {
fill: blue;
}
}
Bạn có thể thấy hành vi ở đây bằng cách truy cập với Chrome và Safari: https://codepen.io/manaten/pen/aLeXjW
EDIT:
https://codepen.io/manaten/pen/aVzeEK Một ví dụ khác về vấn đề này. Có vẻ như nguồn gốc được đặt là trung tâm của yếu tố svg bởi Safari.
Không chắc chắn nó sẽ tạo sự khác biệt, nhưng bạn đã thử với tiền tố nhà cung cấp? – sol
Vì tôi sử dụng autoprefixer, nó không nên phụ thuộc vào tiền tố của nhà cung cấp – kuma