Rumah  >  Artikel  >  hujung hadapan web  >  Kemahiran tutorial animasi_html5 jatuh daun HTML5 yang realistik

Kemahiran tutorial animasi_html5 jatuh daun HTML5 yang realistik

WBOY
WBOYasal
2016-05-16 15:45:482521semak imbas

Animasi jatuh daun HTML5 ini adalah berdasarkan teras webkit, yang bermaksud bahawa animasi ini hanya boleh digunakan pada penyemak imbas dengan teras webkit.

Muat turun kod sumber Alamat demo

Kod HTML

Kod XML/HTMLSalin kandungan ke papan keratan
  1. <div id="bekas" >
  2. <div id="bekas daun" >div>
  3. <div id="mesej" >
  4. < /
  5. em> div>
  6. div>
  7. Kod CSS Kod CSSSalin kandungan ke papan keratan
    1. #container {   
    2.     kedudukansaudara;   
    3.     tinggi700px;   
    4.     lebar500px;   
    5.     margin10px auto;   
    6.     limpahantersembunyi;   
    7.     sempadan4px pepejal #5C090A;   
    8.     
    9. latar belakang#4E4226 url( >'images/backgroundLeaves.jpg'tiada ulangan atas kiri;   
    10. }   
    11.   
    12. /* Mentakrifkan kedudukan dan dimensi bagi  leafContainer div */  
    13. #leafCopenampung    
    14. {   
    15.     
    16. kedudukanmutlak;   
    17.     
    18. lebar: 100%;   
    19.     
    20. tinggi: 100%;   
    21. }  
    22.   
    23. /* Mentakrifkan penampilan, kedudukan dan dimensi div mesej */  
    24. #message   
    25. {   
    26.     kedudukanmutlak;   
    27.     atas160px;   
    28.     lebar: 100%;   
    29.     tinggi300px;   
    30.     latar belakang:telus url( 'images/textBackground.png'ulang-x tengah;   
    31.     warna#5C090A;   
    32.     saiz fon: 220%;   
    33.     fon-keluarga'Georgia';   
    34.     selaraskan tekstengah;   
    35.     pelapis20px 10px;   
    36.     -saiz-kotak-webkit: sempadan-kotak;   
    37.     -webkit-latar belakang-saiz: 100% 100%;   
    38.     z-indeks: 1;   
    39. }   
    40.   
    41. p {   
    42.   margin15px;   
    43. }   
    44.   
    45. a   
    46. {   
    47.   warna#5C090A;   
    48.   teks-hiasantiada;   
    49. }   
    50.   
    51. /* Menetapkan warna mesej "Dino's Gardening Service" */  
    52. em    
    53. {   
    54.     berat fontebal;   
    55.     gaya fonbiasa;   
    56. }   
    57.   
    58. .telefon {   
    59.   saiz fon: 150%;   
    60.   menjajarkan menegaktengah;   
    61. }  
    62.   
    63. /* Peraturan CSS ini digunakan kepada semua elemen div dalam div leafContainer.  
    64.    Ia menggayakan dan menghidupkan setiap daunDiv.  
    65. */  
    66. #leafContainer > div    
    67. {   
    68.     kedudukanmutlak;   
    69.     lebar100px;   
    70.     tinggi100px;   
    71.   
    72.     /* Kami menggunakan sifat berikut untuk menggunakan animasi pudar dan jatuh pada setiap daun.  
    73.        Setiap sifat ini mengambil dua nilai. Nilai ini masing berpadanan dengan tetapan  
    74.        untuk pudar dan jatuh.  
    75.     */  
    76.     -webkit-animation-iteration-count: infinite, infinite;   
    77.     -webkit-animasi-arahbiasabiasa;   
    78.     -webkit-animation-timing-function: linear, ease-in;   
    79. }  
    80.   
    81. /* Peraturan CSS ini digunakan kepada semua elemen img secara langsung di dalam elemen div yang  
    82.    terus di dalam div leafContainer. Dalam erti kata lain, ia sepadan dengan elemen 'img'  
    83.    di dalam leafDivs yang dicipta dalam fungsi createALeaf() .  
    84. */  
    85. #leafContainer > div > img {   
    86.      kedudukanmutlak;   
    87.      lebar100px;   
    88.      tinggi100px;   
    89.   
    90.     /* Kami menggunakan sifat berikut untuk melaraskan Putaran mengikut arah jam atau lawan PutarDanFlip lawan jam  
    91.        animasi pada setiap daun.  
    92.        Fungsi createALeaf dalam fail Leaves.js menentukan sama ada sehelai daun mempunyai    
    93.        Animasi Putar atau lawan arah jamSpinAndFlip .  
    94.     */  
    95.      -webkit-animation-iteration-count: infinite;   
    96.      -webkit-animasi-arah: ganti;   
    97.      -webkit-animation-timing-function: ease-in-out;   
    98.      -webkit-transform-origin: 50% -100%;   
    99. }   
    100.   
    101. /* Menyembunyikan sehelai daun ke arah  hujung      animasi */  
    102. @-webkit-keyframes pudar   
    103. {   
    104.     /* Tunjukkan sehelai daun semasa ke atau di bawah 95 peratus dari   animasi dan sembunyikan ia, jika tidak */  >
    105.     0%   { kelegapan: 1; }   
    106.     95%  { kelegapan: 1; }   
    107.     100% { kelegapan: 0; }   
    108. }  
    109.   
    110. /* Menjadikan sehelai daun jatuh dari -300 ke 600 piksel dalam paksi-y */  
    111. @-webkit-keyframes jatuhkan   
    112. {   
    113.     /* Alihkan sehelai daun ke -300 piksel dalam paksi-y pada  permulaan animasi */  >
    114.     0%   { -webkit-transform: translate(0px, -50px); }   
    115.     /* Alihkan sehelai daun ke 600 piksel dalam paksi-y di hujung animasi */  
    116.     100% { -webkit-transform: translate(0px650px); }   
    117. }   
    118.   
    119. /* Memutar sehelai daun dari -50 ke 50 darjah dalam ruang 2D */  
    120. @-webkit-keyframes mengikut arah jamPusing   
    121. {   
    122.     /* Putar sehelai daun sebanyak -50 darjah dalam ruang 2D di  permulaan animasi */  
    123.     0%   { -webkit-transform: putar(-50deg); }   
    124.     /*  Putar sehelai daun sebanyak 50 darjah dalam ruang 2D di hujung animasi */  
    125.     100% { -webkit-transform: putar(50deg); }   
    126. }   
    127.   
    128. /* Terbalikkan sehelai daun dan putar ia dari 50 ke -50 darjah dalam ruang 2D */  
    129. @-webkit-keyframes lawan arah jamSpinAndFlip    
    130. {   
    131.     /* Terbalikkan sehelai daun dan putar sebanyak 50 darjah dalam ruang 2D di  permulaan animasi */  >
    132.     0%   { -webkit-transform: skala(-1, 1) putar(50deg); }   
    133.     
    134. /* Terbalikkan sehelai daun dan putar sebanyak -50 darjah dalam ruang 2D di hujung animasi */  >     100% { -webkit-transform: skala(-1, 1) putar(-50deg); }   
    135. }   
    JavaScript代码

Kod JavaScript
复制内容到剪贴板
  1. /* Tentukan bilangan daun yang  digunakan dalam  animasi */  
  2. konst BILANGAN_CUTI = 30;   
  3.   
  4. /*   
  5.     Dipanggil apabila halaman "Daun Gugur" dimuat sepenuhnya.  
  6. */  
  7. fungsi init()   
  8. {   
  9.     /* Dapatkan rujukan ke elemen yang akan mengandungi daun */  
  10.     var bekas = document.getElementById('leafContainer');   
  11.     /* Isi bekas kosong dengan daun baharu */  
  12.     untuk (var i = 0; i < BILANGAN_DAUN; < i )    <🎜
  13.     {   
  14.         bekas.appendChild(createALeaf());   
  15.     }   
  16. }   
  17.   
  18. /*  
  19.     Menerima nilai terrendah dan tertinggi dari julat dan  
  20.     mengembalikan integer rawak yang berada dalam julat itu.  
  21. */  
  22. fungsi rawakInteger(rendah, tinggi)   
  23. {   
  24.     
  25. kembali rendah   Math.floor(Math.random() * (high - rendah));   
  26. }   
  27.   
  28. /*  
  29.    Menerima nilai rendah dan tertinggi dari julat dan  
  30.    mengembalikan apungan rawak yang berada dalam julat itu.  
  31. */  
  32. fungsi rawakFloat(rendah, tinggi)   
  33. {   
  34.     
  35. kembali rendah   Math.random() * (tinggi - rendah);   
  36. }   
  37.   
  38. /*  
  39.     Menerima nombor dan mengembalikan nilai pixel CSS nya.  
  40. */  
  41. fungsi PixelValue(nilai)   
  42. {   
  43.     
  44. pulangan nilai   'px';   
  45. }  
  46.   
  47. /*  
  48.     Mengembalikan nilai tempoh untuk animasi yang jatuh.  
  49. */  
  50.   
  51. fungsi durationValue(value)   
  52. {   
  53.     pulangan nilai   ';   
  54. }  
  55.   
  56. /*  
  57.     Menggunakan elemen img untuk membuat setiap daun. "Leaves.css" melaksanakan dua putaran   
  58.     animasi untuk  daun: Putar mengikut arah jam dan PusingDanFlip lawan jam. Ini  
  59.     fungsi menentukan yang mana dari animasi putaran ini harus digunakan pada setiap daun.  
  60.  
  61. */  
  62. fungsi createALeaf()   
  63. {   
  64.     /* Mulakan dengan membuat div pembungkus dan elemen img kosong */  
  65.     var leafDiv = document.createElement('div');   
  66.     var imej = document.createElement('img');   
  67.   
  68.     /* Pilih imej daun secara rawak dan tetapkan ia ke elemen yang baru dibuat */  
  69.     image.src = 'images/realLeaf'   randomInteger(1, 5)   '.png';   
  70.   
  71.     leafDiv.style.top = "-100px";   
  72.   
  73.     /* Letakkan daun di lokasi rawak di sepanjang skrin */  
  74.     leafDiv.style.left = pixelValue(randomInteger(0, 500));   
  75.   
  76.     /* Pilih secara rawak animasi putar */  
  77.     var spinAnimationName = (Math.random() < 0.5) ? 'Putar mengikut arah jam' : 'Putar lawan jamDanFlip';   
  78.   
  79.     /* Tetapkan sifat -webkit-animation-name dengan nilai ini */  
  80.     leafDiv.style.webkitAnimationName = 'pudar, jatuhkan';   
  81.     image.style.webkitAnimationName = spinAnimationName;   
  82.   
  83.     /* Tentukan tempoh rawak untuk   fade dan drop animasi */  
  84.     var fadeAndDropDuration = durationValue(randomFloat(5, 11));   
  85.   
  86.     /* Ketahui masa rawak lain untuk animasi pusing */  
  87.     var spinDuration = durationValue(randomFloat(4, 8));   
  88.     /* Tetapkan sifat -webkit-animation-duration dengan nilai ini */  
  89.     leafDiv.style.webkitAnimationDuration = fadeAndDropDuration   ', '   fadeAndDropDuration;   
  90.   
  91.     var leafDelay = durationValue(randomFloat(0, 5));   
  92.     leafDiv.style.webkitAnimationDelay = leafDelay   ', '   leafDelay;   
  93.   
  94.     image.style.webkitAnimationDuration = spinDuration;   
  95.   
  96.     // tambah  ke 
      
  97.     leafDiv.appendChild(imej);   
  98.   
  99.     /* Kembalikan elemen img ini supaya ia boleh ditambahkan pada  dokumen */  
  100.     kembali leafDiv;   
  101. }   
  102.   
  103. /* Memanggil fungsi init apabila halaman "Daun Gugur"  dimuat penuh */  
  104. window.addEventListener('load', init, false);   

以上就是本文的全部内容,希望对大家学习有所帮助。

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn