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.