整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          HTML5煙花特效,敲了兩小時代碼,漂亮嗎?

          話,javascript在學(xué)習(xí)過程中會很枯燥,并不是你剛學(xué)就可以做出很多華麗的特效,好玩的游戲,和漂亮的代碼,更多的時候都是無聊的,有的人說我對javascript很有興趣,人性本是好逸惡勞,最喜歡吃喝玩樂,學(xué)什么javascript都是被生活壓力所迫,與興趣無關(guān)。所以堅(jiān)持吧,這很重要。

          效果圖如下:


          有很多人學(xué)習(xí)前端,都不是因?yàn)榕d趣,許多人連前端開發(fā)是什么都不知道,他哪來的興趣?然后簡歷里寫:“對前端有濃厚的興趣"前端并不是一個很容易學(xué)好的科目,所以還是那句話,多寫多練多問。

          今天的這個案例就寫完了,希望大家能夠?qū)W習(xí)到東西把這個游戲做出來,源碼和素材下面第三條建議會告訴大家。

          再說幾點(diǎn)建議:

          前端怎么學(xué)習(xí),很簡單網(wǎng)上教程很多,你照著寫,寫一遍不會,寫十遍呢?你會懷疑,萬一我寫十遍還不會呢?但是你寫十遍了嗎?無它,唯手熟而

          多年開發(fā)老碼農(nóng)福利贈送:網(wǎng)頁制作,網(wǎng)站開發(fā),web前端開發(fā),從最零基礎(chǔ)開始的的HTML+CSS+JavaScript。jQuery,Ajax,node,angular框架等到移動端小程序項(xiàng)目實(shí)戰(zhàn)【視頻+工具+電子書+系統(tǒng)路線圖】都有整理,需要的伙伴可以私信我,發(fā)送“前端”等3秒后就可以獲取領(lǐng)取地址,送給每一位對編程感興趣的小伙伴

          這個案例就算做完了,想要完整代碼自己練習(xí)的小伙伴進(jìn)我的QUN自助領(lǐng)取,已經(jīng)上傳到群文件里了,歡迎學(xué)習(xí)交流的小伙伴過來一起學(xué)習(xí)交流。

          這里分享一個我平時常用的水波特效步驟,加在按鈕上特好使。

          首先,是直接創(chuàng)建一個div盒子,不需要在里面添加其他內(nèi)容,我們直接對盒子本身添加css就能形成水波效果。

          html部分,我們div添加白色的波紋,所以在這里設(shè)置html背景為藍(lán)色。

          <body style="background-color: cadetblue ;"> 
            <div class="video"></div>
          </body>

          css部分,先設(shè)置好div的基本屬性

          .video {
            /* 基本屬性 */
            width: 100px;
            height: 100px;
            border-radius: 50px;
          
            /* 給背景顏色添加不透明度 */
          
            /* 不透明度還可以通過添加opacity屬性修改 */
            background-color: rgb(255, 255, 255, 0.6);
          }
          

          然后就是在video中添加這個特效中重中之重的內(nèi)容,在css中設(shè)置animation。

          Animation 是由三部分組成。

          • 關(guān)鍵幀(keyframes) – 以幀的形式定義動畫在不同階段的狀態(tài)。
            • 如果是不同時間下形狀發(fā)生的變化大多可以用動畫的0%,50%,100%表示不同幀對象的變化
            • 如果是不同時間下位置發(fā)生的變化大多可以用from,to來表示不同幀對象的變化
          • 動畫屬性(properties) – 決定動畫的播放時長,播放次數(shù),以及用何種函數(shù)式去播放動畫等。
            • 語法:name duration timing-function delay iteration-count direction fill-mode play-state;
          • css屬性 – 就是css元素來表示不同關(guān)鍵幀下的狀態(tài)。
          .video {
            /* 添加ripple動畫效果 */
            /* -webkit-animation適配-webkit內(nèi)核的瀏覽器*/
            -webkit-animation: ripple 1s linear infinite;
            animation: ripple 1s linear infinite;
          }
          
          /* 定義ripple動畫效果 */
          @-webkit-keyframes ripple {
            /* 關(guān)鍵幀播放到0%時的狀態(tài) */
            0% {
              /* 在box四周添加三層白色陰影 */
              box-shadow: 0 0 0 0 rgb(255 255 255 / 25%), 
              0 0 0 10px rgb(255 255 255 / 25%), 
              0 0 0 20px rgb(255 255 255 / 25%);
            }
            
            /* 關(guān)鍵幀播放到100%時的狀態(tài) */
            100% {
              /* 分別改變?nèi)龑雨幱暗木嚯x
              形成兩幀的動畫,然后在transition的過渡下形成動畫 */
              box-shadow: 0 0 0 10px rgb(255 255 255 / 25%), 
              0 0 0 20px rgb(255 255 255 / 25%), 
              0 0 0 40px rgba(50, 100, 245, 0);
            }
          }
          
          /* 多種瀏覽器兼容性設(shè)置 */
          @keyframes ripple {
            0% {
              box-shadow: 0 0 0 0 rgb(255 255 255 / 25%), 
              0 0 0 10px rgb(255 255 255 / 25%), 
              0 0 0 20px rgb(255 255 255 / 25%);
            }
          
            100% {
              box-shadow: 0 0 0 10px rgb(255 255 255 / 25%), 
              0 0 0 20px rgb(255 255 255 / 25%), 
              0 0 0 40px rgba(50, 100, 245, 0);
            }
          }
          
          

          其中,linear是表示動畫的timing-function,其總共大致有以下幾種效果。

          圖源水印

          為了實(shí)現(xiàn)按鈕的響應(yīng)式操作,我們可以給div再加上一個hover選擇器

          /* 鼠標(biāo)懸浮時的狀態(tài) */
          .video:hover {
            /* 背景顏色不透明度變化 */
            background-color: #FFFFFF;  
          
            /* 將對象放大1.2倍 */
            transform: scale(1.2); 
          }

          再給div添加一個transition屬性,讓div在鼠標(biāo)移動的時候能自然過渡,其原理跟animation類似。

          .video {
            /* 添加動畫的過渡效果 */
            transition: all 0.3s ease-in-out;
          }
          

          然后就能得到我們的結(jié)果,整體的代碼如下

          <!DOCTYPE html>
          <html>
            <head>
              <meta charset="utf-8">
              <title></title>
              <style>
                .video {
                  width: 100px;
                  height: 100px;
                  border-radius: 50px;
                  background-color: rgb(255, 255, 255, 0.6);
                  transition: all 0.3s ease-in-out;
                  -webkit-animation適配-webkit內(nèi)核的瀏覽器*/
                  -webkit-animation: ripple 1s linear infinite;
                  animation: ripple 1s linear infinite;
                }
          
                .video:hover {
                  background-color: #FFFFFF;
                  transform: scale(1.2);   
                }
                @-webkit-keyframes ripple {
                  0% {
                    /* 在box四周添加三層白色陰影 */
                    box-shadow: 0 0 0 0 rgb(255 255 255 / 25%), 
                    0 0 0 10px rgb(255 255 255 / 25%), 
                    0 0 0 20px rgb(255 255 255 / 25%);
                  }
                  
                  100% {
                    /* 分別改變?nèi)龑雨幱暗木嚯x
                    形成兩幀的動畫,然后在transition的過渡下形成動畫 */
                    box-shadow: 0 0 0 10px rgb(255 255 255 / 25%), 
                    0 0 0 20px rgb(255 255 255 / 25%), 
                    0 0 0 40px rgba(50, 100, 245, 0);
                  }
                }
                @keyframes ripple {
                  0% {
                    box-shadow: 0 0 0 0 rgb(255 255 255 / 25%), 
                    0 0 0 10px rgb(255 255 255 / 25%), 
                    0 0 0 20px rgb(255 255 255 / 25%);
                  }
                  100% {
                    box-shadow: 0 0 0 10px rgb(255 255 255 / 25%), 
                    0 0 0 20px rgb(255 255 255 / 25%), 
                    0 0 0 40px rgba(50, 100, 245, 0);
                  }
                }
              </style>
            </head>
            <body style="background-color: cadetblue ;"> 
              <div class="video"></div>
            </body>
          </html>
          

          效果圖

          下是使用HTML、CSS和JavaScript實(shí)現(xiàn)"櫻花飄落"和"雪花飄落"特效的簡單示例:

          1. 櫻花飄落特效:

          HTML:

          ```html

          <div class="sakura-container">

          <img src="sakura.png" class="sakura" alt="sakura">

          </div>

          ```

          CSS:

          ```css

          .sakura-container {

          position: relative;

          height: 100vh;

          overflow: hidden;

          }

          .sakura {

          position: absolute;

          top: -50px;

          animation: sakura-fall 10s linear infinite;

          }

          @keyframes sakura-fall {

          0% {

          transform: translateY(0);

          }

          100% {

          transform: translateY(100vh);

          }

          }

          ```

          2. 雪花飄落特效:

          HTML:

          ```html

          <div class="snow-container">

          <span class="snowflake"></span>

          </div>

          ```

          CSS:

          ```css

          .snow-container {

          position: relative;

          height: 100vh;

          overflow: hidden;

          background-color: #000;

          }

          .snowflake {

          position: absolute;

          top: -10px;

          width: 10px;

          height: 10px;

          background-color: #fff;

          border-radius: 50%;

          animation: snow-fall 5s linear infinite;

          }

          @keyframes snow-fall {

          0% {

          transform: translateY(0) rotate(0deg);

          }

          100% {

          transform: translateY(100vh) rotate(360deg);

          }

          }

          ```

          JavaScript:

          ```javascript

          function createSnowflakes() {

          const snowContainer = document.querySelector('.snow-container');

          const numFlakes = 50;

          for (let i = 0; i < numFlakes; i++) {

          const snowflake = document.createElement('span');

          snowflake.classList.add('snowflake');

          snowflake.style.left = `${Math.random() * 100}%`;

          snowflake.style.animationDelay = `${Math.random() * 5}s`;

          snowContainer.appendChild(snowflake);

          }

          }

          createSnowflakes();

          ```

          將上述代碼保存為HTML文件,并在相應(yīng)的位置放置櫻花或雪花圖像,即可實(shí)現(xiàn)對應(yīng)特效。注意,需要在CSS中調(diào)整圖像和容器的樣式以適應(yīng)實(shí)際需求。這只是一個簡單示例,您可以根據(jù)自己的喜好和需求進(jìn)行定制和擴(kuò)展。


          主站蜘蛛池模板: 波多野结衣中文字幕一区 | 国产精品香蕉一区二区三区| 精品国产亚洲一区二区三区| 亚洲精品伦理熟女国产一区二区| 一区二区三区亚洲视频| 乱色精品无码一区二区国产盗| 国产伦精品一区二区三区免.费| 亚洲乱码一区二区三区国产精品| 亚洲中文字幕无码一区二区三区 | 一区二区三区91| 成人H动漫精品一区二区| 怡红院美国分院一区二区| 国产主播一区二区| 国产精品久久亚洲一区二区| 日韩精品无码久久一区二区三| 久久精品成人一区二区三区| 亚洲av乱码一区二区三区| 一区二区三区视频在线| 久久综合精品不卡一区二区| 国产在线精品一区二区三区不卡| 无码日韩精品一区二区人妻| 国产人妖在线观看一区二区| 午夜DV内射一区区| 精品国产天堂综合一区在线| 国产日产久久高清欧美一区| 国产一区二区在线观看| 日韩美一区二区三区| 国产成人精品无码一区二区老年人 | 亚洲AV一区二区三区四区| 亚洲欧美日韩一区二区三区 | 亚洲一区二区三区不卡在线播放| 少妇无码一区二区三区| 亚洲一区二区三区四区视频 | 国产AV一区二区三区无码野战 | 日本一区中文字幕日本一二三区视频| 亚洲AV无码一区二区三区牲色| 毛片一区二区三区无码| 天码av无码一区二区三区四区 | 视频一区二区在线播放| 久久se精品一区精品二区国产| 日韩制服国产精品一区|