2012-10-06 18 views
20

3-4 gün bu denemeyi deniyorum, ancak bu animasyonu nasıl yapacağımı bile edemiyorum, sadece CSS3 kullanarak böyle bir şey yapmanın mümkün olup olmadığından emin değil miyim?CSS3 animasyonlarını kullanarak bir atom benzeri animasyon nasıl oluşturulur?

Atom

, bir fikrin nasıl bu ben animation-direction:alternate; kullanarak çalıştı ama, belirli bir açıda bir kare şekilli bunu animasyon mümkün bu akışı elde etmek mümkün değilim .. ama yolu atomu canlandıran saf CSS3 kullanarak yapılabilir? yoksa jQuery'de herhangi bir çözüm var mı?

+0

Bu OP http://stackoverflow.com/questions/16500907/collapsible-panel-in-html-css gibi şeyler kapatmak için geldi aynı gerekçelerle kapatılmalıdır (i şahsen ikisi de geçerli olduğunu düşünüyorum, ama OP açıkça – gcb

+1

@gcb sana tarihleri ​​karşılaştırmak eğer web sitesine yeni ve kurallar :) Eğer –

+0

@gcb görürseniz farkında değildi, ben bu soruyu sormuştu, kapatmadan umursamıyorum) çifte standartlara sahip [Bu] (http://stackoverflow.com/q/13132864/1542290), benim çok daha iyi buluyorum :) –

cevap

17

this çevrimiçi bulundu.

Bu transform-style: preserve-3d özelliği kullanır ve x elektronları döner, y ve z eksenleri Bu 3 boyutlu bir etki elde etmek için.

HTML Yapısı

<div id="main"> 
    <div id="atom"> 
     <div class="orbit"> 
      <div class="path"> 
       <div class="electron"></div> 
      </div> 
     </div> 
     <div class="orbit"> 
      <div class="path"> 
       <div class="electron"></div> 
      </div> 
     </div> 
     <div class="orbit"> 
      <div class="path"> 
       <div class="electron"></div> 
      </div> 
     </div> 
     <div class="orbit"> 
      <div class="path"> 
       <div class="electron"></div> 
      </div> 
     </div> 
     <div id="nucleus"></div> 
    </div> 
</div> 

CSS

.orbit { 
    -webkit-transform-style: preserve-3d; 
    -webkit-transform: rotateX(80deg) rotateY(20deg); 
} 

#atom .orbit:nth-child(2) { 
    -webkit-transform: rotateX(80deg) rotateY(70deg) 
} 
#atom .orbit:nth-child(3) { 
    -webkit-transform: rotateX(80deg) rotateY(-20deg) 
} 
#atom .orbit:nth-child(4) { 
    -webkit-transform: rotateX(80deg) rotateY(-50deg) 
} 

.path { 
    -webkit-transform-style: preserve-3d; 
    -webkit-animation-name: pathRotate; 
    -webkit-animation-duration: 2s; 
    -webkit-animation-iteration-count: infinite; 
    -webkit-animation-timing-function: linear; 
} 

.electron { 
    -webkit-animation-name: electronFix; 
    -webkit-animation-duration: 2s; 
    -webkit-animation-iteration-count: infinite; 
    -webkit-animation-timing-function: linear; 
} 

@-webkit-keyframes pathRotate { 
    from { 
     -webkit-transform: rotateZ(0deg); 
    } to { 
     -webkit-transform: rotateZ(360deg); 
    } 
} 

@-webkit-keyframes electronFix { 
    from { 
     -webkit-transform: rotateX(90deg) rotateY(0deg); 
    } to { 
     -webkit-transform: rotateX(90deg) rotateY(-360deg); 
    } 
} 

Fiddle

Blog Post

+0

gerçekten harika, ama ben doğrudan atom gif görüntüsünü kullanabiliyorsam, bir şeyi anlamıyorum, i css için gider neden bu kadar cok kod yazmak zorunda nerede .. :( –

+0

@RahulR. Tek başına neler yapabileceğini css bilmek için sadece eğlenceli, belli ki sen bile olduğunu gif, daha iyi, ne çapraz tarayıcı sorunlarını kullanabilirsiniz başka bir şey değil, bende istedim Bir css çözümü;) –

6

Kesinlikle mümkün CSS. @ Prashanth'ın mesajını fark etmeden önce bir kavram kanıtı olarak son derece basit bir araya getirdim. Bulduğu yer waaay daha soğuk, ama yine de benimki ... süper çıplak kemikleri ama biraz kibar ve güzel görünüyor.

http://jsfiddle.net/BZFJ8/2/

+0

sizin sakin akıllı olduğunu kabul, ama arkadan öne doğru o topu yüzer herhangi fikir yok, ama güzel bir örnek 1 –

+0

kare animasyon translate3d özelliğinde Z değeri kurgulama olur elektronların göreceli konumunu önden arkaya değiştirmenize izin verin ve anahtar karelere ölçek() değeri eklemek, önden arkaya doğru hareket ettikleri için boyutlarını değiştirmenize izin verir. –

0

Ben bu bir de sen istedin benziyor ama onlar jQuery ile bir çözüm olmadığını bulabilir Krom 9

http://bgre.at/demo/CSS3-atom/index.html

o itibariyle Safari sadece animasyon için olduğunu söyledi tarayıcınızı uyumlu bir şekilde önemsersiniz.

İlgili konular