CSS3 Animasyonu Döndür


244
<img class="image" src="" alt="" width="120" height="120">

Bu animasyonlu görüntünün çalışması mümkün değil, 360 derece döndürmesi gerekiyor.

Aşağıdaki CSS ile ilgili bir şeylerin yanlış olduğunu düşünüyorum, çünkü sabit kalıyor.

.image {
    float: left;
    margin: 0 auto;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120px;
    height: 120px;
    margin-top: -60px;
    margin-left: -60px;

    -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;

    @-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); 
        }
    }
}

Yanıtlar:


520

İşte bir demo . Doğru animasyon CSS'si:

.image {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120px;
    height: 120px;
    margin:-60px 0 0 -60px;
    -webkit-animation:spin 4s linear infinite;
    -moz-animation:spin 4s linear infinite;
    animation:spin 4s linear infinite;
}
@-moz-keyframes spin { 100% { -moz-transform: rotate(360deg); } }
@-webkit-keyframes spin { 100% { -webkit-transform: rotate(360deg); } }
@keyframes spin { 100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); } }
<img class="image" src="http://i.stack.imgur.com/pC1Tv.jpg" alt="" width="120" height="120">


Kodunuzla ilgili bazı notlar:

  1. Ana kareleri .imagekuralın içine yerleştirdiniz ve bu yanlış
  2. float:left kesinlikle konumlandırılmış elemanlar üzerinde çalışmaz
  3. Caniuse bir göz atın : IE10 -ms-önek gerekmez

13
Birisi bunu kendi kodunda denerse: DONT THE @ bölümünü alttan UNUTMAYIN
Jack M.

Merhaba 5 sn sonra animasyon döndürmeyi durdurabilir miyim?
MD Ashik

16
Animasyonu çalıştırdığımda neredeyse suyu tükürüyordum.
Razgriz

" float:left won't work on absolutely positioned elements", bu göstergeye benzer şekilde minimum boyutta küçültülecek: satır içi blok yapar
gregn3

32

Seninle aynı şeyi kullanarak dönen bir görüntüm var:

.knoop1 img{
    position:absolute;
    width:114px;
    height:114px;
    top:400px;
    margin:0 auto;
    margin-left:-195px;
    z-index:0;

    -webkit-transition-duration: 0.8s;
    -moz-transition-duration: 0.8s;
    -o-transition-duration: 0.8s;
    transition-duration: 0.8s;

    -webkit-transition-property: -webkit-transform;
    -moz-transition-property: -moz-transform;
    -o-transition-property: -o-transform;
     transition-property: transform;

     overflow:hidden;
}

.knoop1:hover img{
    -webkit-transform:rotate(360deg);
    -moz-transform:rotate(360deg); 
    -o-transform:rotate(360deg);
}

1
ekle: transform:rotate(360deg);IE için
Dusty

3
Lütfen bozuk web sitesi bağlantıları üzerinden yerel örnekler seçin.
evolutionxbox

Bağlantı kesildi.
Markus Bucher

30

360 derece dönüş elde etmek için, burada Çalışma Çözümü .

HTML:

<img class="image" src="your-image.png">

CSS:

.image {
    overflow: hidden;
    transition-duration: 0.8s;
    transition-property: transform;
}
.image:hover {
    transform: rotate(360deg);
    -webkit-transform: rotate(360deg);
}

Görüntünün üzerine gelmeniz ve 360 ​​derece döndürme efekti elde etmeniz gerekir.

Not: -webkit-Chrome ve diğer webkit tarayıcılarında çalışması için bir uzantı ekleyin. Webkit için güncellenmiş kemanı kontrol edebilirsiniz BURAYA


Fiddle çalışmıyor Chrome denetçisi CSS'nizi sevmiyor, özellikle "dönüşüm" ve "geçiş özelliği". Ah hayatım.
Sadece Düz Yüksek

1
-webkit-tranformBunun için çalışması için bir eklemeniz gerekir . İşte güncellenmiş keman. jsfiddle.net/sELBM/172 - @JustPlainHigh
Nitesh

1
2017: Bu artık çok iyi destekleniyor ve sonsuz olmayan rotasyonlar yapmak için tercih edilen bir yol. -webkit-önek artık gerekli değildir ve güvenle kaldırılabilir. Tarayıcı desteği: caniuse.com/#search=transforms
Alph.Dev

2

Eğer görüntüyü çevirmek istiyorsanız kullanabilirsiniz.

.image{
    width: 100%;
    -webkit-animation:spin 3s linear infinite;
    -moz-animation:spin 3s linear infinite;
    animation:spin 3s linear infinite;
}
@-moz-keyframes spin { 50% { -moz-transform: rotateY(90deg); } }
@-webkit-keyframes spin { 50% { -webkit-transform: rotateY(90deg); } }
@keyframes spin { 50% { -webkit-transform: rotateY(90deg); transform:rotateY(90deg); } }

0

.image {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120px;
    height: 120px;
    margin:-60px 0 0 -60px;
    -webkit-animation:spin 4s linear infinite;
    -moz-animation:spin 4s linear infinite;
    animation:spin 4s linear infinite;
}
@-moz-keyframes spin { 100% { -moz-transform: rotate(360deg); } }
@-webkit-keyframes spin { 100% { -webkit-transform: rotate(360deg); } }
@keyframes spin { 100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); } }
<img class="image" src="http://i.stack.imgur.com/pC1Tv.jpg" alt="" width="120" height="120">


0

bunu kolay dene

 
 .btn-circle span {
     top: 0;
   
      position: absolute;
     font-size: 18px;
       text-align: center;
    text-decoration: none;
      -webkit-animation:spin 4s linear infinite;
    -moz-animation:spin 4s linear infinite;
    animation:spin 4s linear infinite;
}

.btn-circle span :hover {
 color :silver;
}


/* rotate 360 key for refresh btn */
@-moz-keyframes spin { 100% { -moz-transform: rotate(360deg); } }
@-webkit-keyframes spin { 100% { -webkit-transform: rotate(360deg); } }
@keyframes spin { 100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); } } 
 <button type="button" class="btn btn-success btn-circle" ><span class="glyphicon">&#x21bb;</span></button>


-6

İşte bu size yardımcı olmalı

Aşağıdaki jsfiddle bağlantısı, bir görüntünün nasıl döndürüleceğini anlamanıza yardımcı olacaktır.Bir saati çevirmek için aynı resmi kullandım.

http://jsfiddle.net/xw89p/

var rotation = function (){
   $("#image").rotate({
      angle:0, 
      animateTo:360, 
      callback: rotation,
      easing: function (x,t,b,c,d){       
          return c*(t/d)+b;
      }
   });
}
rotation();

Nerede: • t: geçerli saat,

• b: begInnIng değeri,

• c: Değeri değiştir,

• d: süre,

• x: kullanılmayan

Hareket hızı yok (doğrusal hareket hızı): işlev (x, t, b, c, d) {dönüş b + (t / d) * c; }


2
Biraz daha fazla bilgi verirseniz (kemanda yaptığınız gibi) bu cevabı iptal ederim. Ben de bunun bir jQuery eklentisi olduğunu belirtmelisiniz, çünkü " JQuery'nin bunu yapabileceğini bilmiyordum !!! ^ _ ^ keman görünüyor Oh bekle ... U_U"
Sadece Düz Yüksek

2
x, t, b, c, d değişkenlerinin (kemanda yaptığınız gibi) bir açıklaması ve OP tarafından istendiği gibi bir CSS çözümü olmamasına rağmen, oldukça basit ve etkili bir jQuery eklenti çözümü olduğunu açıkça belirtmek gerekirse: )
Sadece Düz Yüksek

3
Downvoted. OP bir Javascript çözümü istemedi, özellikle jQuery eklentisi. Sorulanlara sadık kalın.
TheCarver
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.