整合營銷服務(wù)商

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

          免費咨詢熱線:

          現(xiàn)代CSS:使用 CSS 制作五彩紙屑按鈕

          現(xiàn)代CSS:使用 CSS 制作五彩紙屑按鈕

          文通過 CSS 和一個開源包來實現(xiàn)五彩紙屑按鈕效果。

          1.創(chuàng)建頁面框架

          使用 html:5div.wrapper>button.btn-confetti 快速創(chuàng)建頁面容器。

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>Document</title>
          </head>
          <body>
            <div class="wrapper">
              <button class="btn-confetti"></button>
            </div>
          </body>
          </html>
          

          2.增加基礎(chǔ)樣式

          增加對 body 元素的 grid 布局,同時給它設(shè)置了高度 100vh,使子元素水平垂直居中。給 button 按鈕增加了漸變背景色,并使用了 transition 動畫。注意樣式中使用了原生 CSS 嵌套語法。

          body {
            display: grid;
            place-items: center;
            height: 100vh;
          }
          
          .wrapper {
            position: relative;
            .btn-confetti {
              font-size: 1.15rem;
              font-weight: 700;
              padding: 0.75em 1.5em;
              border: 0;
              border-radius: 100vmax;
              background: linear-gradient(90deg, #a8ff78 50%, #78ffd6);
              cursor: pointer;
              transition: transform 150ms ease-in-out;
          
              &:hover {
                transform: scale(1.1);
              }
            }
          }
          

          3.實現(xiàn)五彩紙屑

          五彩紙屑使用了一個開源的 NPM 包 canvas-confetti,你可以通過 npm i canvas-confetti 快速安裝使用,在本 demo 中直接使用的是 CDN 鏈接。

          我們首先給按鈕綁定一個點擊事件,當(dāng)按鈕被點擊時觸發(fā)五彩紙屑的噴發(fā)的效果。

          <script src="https://cdn.jsdelivr.net/npm/canvas-confetti@1.9.0/dist/confetti.browser.min.js"></script>
          <script>
          const $confettiBtn=document.querySelector('.btn-confetti');
          $confettiBtn.addEventListener('click', ()=> {
            const $canvas=document.createElement('canvas');
            const $wrapper=document.querySelector('.wrapper');
          
            $canvas.width=600;
            $canvas.height=600;
          
            $wrapper.appendChild($canvas);
          
            // 初始化 confetti
            const confettiBtn=window.confetti.create($canvas);
          
            // 噴發(fā)后
            confettiBtn().then(()=> $canvas.remove());
          });
          </script>
          

          4.效果預(yù)覽

          ss實現(xiàn)常用的開關(guān)按鈕功能,常用在一些網(wǎng)站的設(shè)置頁面中,一般用在手機端的頁面比較多,實現(xiàn)的做法有很多,可以利用圖片完成,也可以用css和js完成!具體效果如下:

          實現(xiàn)代碼:

          html結(jié)構(gòu):

          css樣式:

          js:

          文中我們對CSS超炫加載動畫設(shè)計、實現(xiàn)與實例進(jìn)行了講解與說明,通過學(xué)習(xí)可知使用CSS提供的animation屬性及偽元素等可以實現(xiàn)精美的CSS動畫效果的設(shè)計與開發(fā)。本文我們將繼續(xù)介紹CSS在Web頁面元素設(shè)計中的應(yīng)用。

          純CSS實現(xiàn)開關(guān)元素設(shè)計


          按鈕開關(guān)設(shè)計要求及效果

          本例我們使用CSS完成開關(guān)的設(shè)計,主要要求是在點擊開關(guān)時開關(guān)標(biāo)識顏色需要改變,另外需要體現(xiàn)出元素點擊前與點擊后的動態(tài)變化與立體效果。本例最終設(shè)計呈現(xiàn)效果描述如下圖所示:

          開關(guān)按鈕實現(xiàn)效果展示


          設(shè)計思路與語法說明

          要實現(xiàn)如上圖所示的開關(guān)按鈕效果,需要針對元素改變鼠標(biāo)點擊前后的CSS樣式,因為只使用CSS實現(xiàn),我們選擇本身具有點擊屬性的INPUT元素。因此還需要考慮對INPUT元素外觀進(jìn)行設(shè)置,其設(shè)置也主要是依托于CSS選擇器及相關(guān)屬性的設(shè)置。

          CSS選擇器及屬性設(shè)置

          另一方面本例中出現(xiàn)的開關(guān)標(biāo)志,主要使用第三方字體庫提供的圖標(biāo)實現(xiàn),因此需要對font相關(guān)屬性及CSS外部link方法有所學(xué)習(xí)掌握。本例所使用字體如下所示:

          字體圖標(biāo)

          在明確基本思路之后,我們可以使用submine進(jìn)行代碼編寫,主要編寫步驟如下:

          1、鏈接字體樣式

          本例使用如上圖所示提供的on圖標(biāo),即Font Awesome圖標(biāo)字體庫和CSS框架,因此需要外部鏈接或者下載相應(yīng)CSS文件,這里我們選擇外部鏈接,通過使用CSS提供的link,實現(xiàn)代碼如下:

          字體鏈接

          鏈接完成之后我們在設(shè)置字體時可直接使用FontAwesome字體,其中on圖標(biāo)對應(yīng)的編碼為f011。

          2、定義頁面內(nèi)容

          本例頁面內(nèi)容主要使用input元素checkbox屬性進(jìn)行按鈕設(shè)置。因此頁面內(nèi)容部分定義如下所示:

          頁面主體部分

          3、定義checkbox樣式

          在完成頁面元素添加之后就需要對頁面元素進(jìn)行CSS樣式的設(shè)置,本例通過元素加type屬性作為選擇器,選擇指定元素并進(jìn)行樣式設(shè)置。代碼如下:

          checkbox屬性設(shè)置

          checkbox屬性設(shè)置描述如上圖所示,設(shè)置效果如下:

          checkbox屬性效果

          4、input添加checked、after等樣式

          為進(jìn)一步實現(xiàn)點擊效果切換及圖標(biāo)按鈕的效果,需要對check狀態(tài)及after偽元素進(jìn)行CSS樣式的設(shè)置。其中after為元素主要用于在上圖中添加on開關(guān)圖標(biāo)。實現(xiàn)代碼描述如下:

          after偽元素選擇器及樣式設(shè)置

          after偽元素選擇器及樣式設(shè)置如上圖所示,主要完成content內(nèi)容即on圖標(biāo)設(shè)置,字體選擇、字體顏色及字體大小設(shè)置,設(shè)置完成預(yù)覽效果如下:

          after為元素設(shè)置效果

          要實現(xiàn)點擊效果就需要在點擊之后對input元素樣式進(jìn)行設(shè)置,因此我們使用checked作為選擇器對該狀態(tài)下input樣式進(jìn)行設(shè)置。設(shè)置代碼如下所示:

          checked狀態(tài)CSS設(shè)置

          checked狀態(tài)CSS設(shè)置如上圖所示,我們只對box-shadow陰影進(jìn)行設(shè)置,通過陰影變化實現(xiàn)按鈕動態(tài)效果。

          5、點擊之后on圖標(biāo)顏色變化

          點擊之后on圖標(biāo)顏色變化主要通過對input[type="checkbox"]:checked,進(jìn)一步使用after偽元素定義字體顏色實現(xiàn)。實現(xiàn)代碼如下所示:

          on圖標(biāo)(字體)顏色改變

          通過使用該選擇器,會在input點擊之后,on字體顏色變?yōu)榧t色。以上給出了input按鈕效果實現(xiàn)的基本思路與部分核心實現(xiàn)代碼。如需完整案例代碼請關(guān)注并私信作者。


          本頭條號長期關(guān)注編程資訊分享;編程課程、素材、代碼分享及編程培訓(xùn)。如果您對以上方面有興趣或代碼錯誤、建議與意見,可在評論區(qū)回復(fù)。更多程序設(shè)計相關(guān)教程及實例分享,期待大家關(guān)注與閱讀!


          主站蜘蛛池模板: 国产精品小黄鸭一区二区三区 | 亚洲AV无码一区二区三区鸳鸯影院| 精品一区二区三区影院在线午夜 | 无码人妻精品一区二区三区66| 成人无号精品一区二区三区| 色欲综合一区二区三区| 无码一区18禁3D| 人妻免费一区二区三区最新| 欧美日韩一区二区成人午夜电影| 在线观看一区二区三区视频| 四虎精品亚洲一区二区三区| 国产av熟女一区二区三区| 少妇无码一区二区三区| 欧洲精品免费一区二区三区| 中文字幕无线码一区| 亚洲乱码一区av春药高潮 | 春暖花开亚洲性无区一区二区 | 91精品一区二区三区在线观看| 国产一区二区三区国产精品| 色综合久久一区二区三区| 人妖在线精品一区二区三区| 国产一区二区三区在线| 亚洲视频一区二区在线观看| 亚洲日韩中文字幕无码一区| 国产亚洲一区二区手机在线观看 | 亚洲AV午夜福利精品一区二区| 久久久av波多野一区二区| 日韩人妻无码一区二区三区久久99| 成人一区二区三区视频在线观看 | 亚洲av色香蕉一区二区三区蜜桃| 国产一区二区好的精华液| 竹菊影视欧美日韩一区二区三区四区五区 | 亚洲韩国精品无码一区二区三区 | 国产精品视频免费一区二区| 美女啪啪一区二区三区| 久久se精品一区精品二区国产| 男插女高潮一区二区| 日本欧洲视频一区| 国产精品视频一区二区噜噜| 亚洲色精品aⅴ一区区三区| 视频一区在线播放|