2014-04-07 16 views
16

Im cố gắng để quay một thế giới xung quanh trung tâm của nó - nhưng không thể dường như xoay nó một cách chính xác (khoảng trục trung tâm riêng của mình)ảnh Xoay quanh css3 trung tâm

Thật khó để giải thích vì vậy tôi đã fiddle bạn có thể cũng .... fiddle với.

http://jsfiddle.net/FQwYJ/

và css của tôi

.world 
{ 
-webkit-animation: spin1 2s infinite linear; 
-moz-animation: spin1 2s infinite linear; 
-o-animation: spin1 2s infinite linear; 
-ms-animation: spin1 2s infinite linear; 
animation: spin1 2s infinite linear; 
} 

@-webkit-keyframes spin1 { 
0% { -webkit-transform: rotate(0deg);} 
100% { -webkit-transform: rotate(360deg);} 
} 
@-moz-keyframes spin1 { 
0% { -moz-transform: rotate(0deg);} 
100% { -moz-transform: rotate(360deg);} 
} 
@-o-keyframes spin1 { 
0% { -o-transform: rotate(0deg);} 
100% { -o-transform: rotate(360deg);} 
} 
@-ms-keyframes spin1 { 
0% { -ms-transform: rotate(0deg);} 
100% { -ms-transform: rotate(360deg);} 
} 
@-keyframes spin1 { 
0% { transform: rotate(0deg);} 
100% { transform: rotate(360deg);} 
} 

Thanks for the help (trợ giúp làm việc sẽ được ghi trong thí nghiệm cuối cùng)

+0

Bạn không phải đặt nguồn gốc ở giữa hình ảnh bằng cách sử dụng: 'transform-origin' – Cyclonecode

+1

Cảm ơn bạn đã trả lời nhưng sau một chút không quan trọng - tất cả những gì tôi phải làm là chỉ định lớp hình ảnh là .world và mọi thứ diễn ra tốt đẹp - để làm rõ - tôi đã quay vòng div thay vì hình ảnh và nguồn gốc của div tôi đoán là góc dưới cùng bên phải. – anthonytherockjohnson

+1

Không, nguồn gốc mặc định của div nằm ở góc trên cùng bên trái. – Cyclonecode

Trả lời

9

Bạn không giới hạn kích thước của div.

Trong thực tế, bạn không cần phải div ở tất cả, bạn chỉ có thể áp dụng các lớp để hình ảnh:

JSfiddle Demo

<img class="world" src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Erioll_world_2.svg/256px-Erioll_world_2.svg.png"/> 
+0

Thats nó - tôi figured nó ra khi bạn trả lời - cảm ơn bạn anyways. Paulie_D sẽ ghi có – anthonytherockjohnson

16

bạn cần phải thiết lập kích thước của nguyên tố này và chỉ định transform-origin thuộc tính

-webkit-transform-origin: 50% 50%; 
-moz-transform-origin: 50% 50%; 
-o-transform-origin: 50% 50%; 
transform-origin: 50% 50%; 
width: 256px; 
height: 256px; 

E xample fiddle: http://jsfiddle.net/RbXRM/3/

+4

trên thực tế, 'biến đổi-origin' được căn giữa theo mặc định http://jsfiddle.net/RbXRM/2/ –

+0

@KingKing Nice, tôi nghĩ giá trị mặc định là '0, 0, 0'. Đây có phải là giá trị mặc định cho mọi trình duyệt không? – fcalderan

+0

Tôi không chắc chắn nhưng nó phải như vậy bởi vì đó là những gì được viết trong đặc tả CSS3 http://www.w3schools.com/cssref/css3_pr_transform-origin.asp :) –

0

bạn cần phải quay chỉ img

.world img 
{ 
-webkit-animation: spin1 2s infinite linear; 
-moz-animation: spin1 2s infinite linear; 
-o-animation: spin1 2s infinite linear; 
-ms-animation: spin1 2s infinite linear; 
animation: spin1 2s infinite linear; 
} 

hoặc sửa đổi hiển thị của div.world để nó it shrinks trên hình ảnh (inline-block,inline-table,table) hoặc thậm chí float

Các vấn đề liên quan