<!doctype html> <html lang="ja"> <style> スタイル </style> <body translate="no"> <menu class="種類分類"> <button class="お品書き active"style="--カスタムオブジェ:#007f6f;"> <svg class="目印"viewBox="0 0 24 24"> <path d="M3.8,6.6h16.4"/> <path d="M20.2,12.1H3.8"/> <path d="M3.8,17.5h16.4"/> </svg> </button> <button class="お品書き"style="--カスタムオブジェ:#20b2aa;"> <svg class="目印"viewBox="0 0 24 24"> <path d="M6.7,4.8h10.7c0.3,0,0.6,0.2,0.7,0.5l2.8,7.3c0,0.1,0,0.2,0,0.3v5.6c0,0.4-0.4,0.8-0.8,0.8H3.8 C3.4,19.3,3,19,3,18.5v-5.6c0-0.1,0-0.2,0.1-0.3L6,5.3C6.1,5,6.4,4.8,6.7,4.8z"/> <path d="M3.4,12.9H8l1.6,2.8h4.9l1.5-2.8h4.6"/> </svg> </button> <button class="お品書き"style="--カスタムオブジェ:#6495ed;"> <svg class="目印"viewBox="0 0 24 24"> <path d="M3.4,11.9l8.8,4.4l8.4-4.4"/> <path d="M3.4,16.2l8.8,4.5l8.4-4.5"/> <path d="M3.7,7.8l8.6-4.5l8,4.5l-8,4.3L3.7,7.8z"/> </button> <button class="お品書き"style="--カスタムオブジェ:#8a2be2;"> <svg class="目印"viewBox="0 0 24 24"> <path d="M5.1,3.9h13.9c0.6,0,1.2,0.5,1.2,1.2v13.9c0,0.6-0.5,1.2-1.2,1.2H5.1c-0.6,0-1.2-0.5-1.2-1.2V5.1 C3.9,4.4,4.4,3.9,5.1,3.9z"/> <path d="M4.2,9.3h15.6"/> <path d="M9.1,9.5v10.3"/> </button> <button class="お品書き"style="--カスタムオブジェ:#ff1493;"> <svg class="目印"viewBox="0 0 24 24"> <path d="M5.1,3.9h13.9c0.6,0,1.2,0.5,1.2,1.2v13.9c0,0.6-0.5,1.2-1.2,1.2H5.1c-0.6,0-1.2-0.5-1.2-1.2V5.1 C3.9,4.4,4.4,3.9,5.1,3.9z"/> <path d="M5.5,20l9.9-9.9l4.7,4.7"/> <path d="M10.4,8.8c0,0.9-0.7,1.6-1.6,1.6c-0.9,0-1.6-0.7-1.6-1.6C7.3,8,8,7.3,8.9,7.3C9.7,7.3,10.4,8,10.4,8.8z"/> </svg> </button> <div class="区分け"></div> </menu> <div class="白い線"> <svg viewBox="0 0 202.9 45.5"> <clipPath id="上下左右"clipPathUnits="objectBoundingBox" transform="scale(0.0049285362247413 0.021978021978022)"> <path d="M6.7,45.5c5.7,0.1,14.1-0.4,23.3-4c5.7-2.3,9.9-5, 18.1-10.5c10.7-7.1,11.8-9.2,20.6-14.3c5-2.9,9.2-5.2,15.2-7 c7.1-2.1,13.3-2.3,17.6-2.1c4.2-0.2,10.5,0.1,17.6,2.1c6.1,1.8, 10.2,4.1,15.2,7c8.8,5,9.9,7.1,20.6,14.3c8.3,5.5,12.4,8.2,18.1,10.5 c9.2,3.6,17.6,4.2,23.3,4H6.7z"/> </clipPath> </svg> </div> <script> すくりぷと </script> </html>
<style> html{box-sizing:border-box; --カスタムカラー:#000000; --ディレイタイム:.7s;} html*, html*::before, html*::after{box-sizing:inherit;} body{margin:0; display:flex; height:240px; overflow:hidden; align-items:center; justify-content:center; background-color:#afeeee; -webkit-tap-highlight-color:transparent; transition:background-color var(--ディレイタイム);} .種類分類{margin:0; display:flex; width:32em; font-size:24px; padding:0 3em; position:relative; align-items:center; justify-content:center; background-color:var(--カスタムカラー);} .お品書き{all:unset; flex-grow:1; z-index:100; display:flex; cursor:pointer; position:relative; border-radius:50%; align-items:center; will-change:transform; justify-content:center; padding:0.55em 0 0.85em; transition:transform var(--カスタムタイムアウト,var(--ディレイタイム));} .お品書き::before{content:""; z-index:-1; width:4.2em; height:4.2em; border-radius:50%; position:absolute; transform:scale(0); transition:background-color var(--ディレイタイム),transform var(--ディレイタイム);} .お品書き.active{transform:translate3d(0,-.8em,0);} .お品書き.active::before{transform:scale(1); background-color:var(--カスタムオブジェ);} .目印{width:2.6em; height:2.6em; stroke:white; fill:transparent; stroke-width:1pt; stroke-miterlimit:10; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:400;} .お品書き.active .目印{animation:strok 1.5s reverse;} @keyframes strok{100%{stroke-dashoffset:400;}} .区分け{left:0; bottom:99%; width:10.9em; height:2.4em; position:absolute; clip-path:url(#上下左右); will-change:transform; background-color:var(--カスタムカラー); transition:transform var(--カスタムタイムアウト,var(--ディレイタイム));} .白い線{width:0; height:0;} @media screen and (max-width:50em) {.種類分類{font-size:.8em;}} </style>
<script> "use strict"; const 全体=document.body; const 背景の色=["#98fb98","#008b8b","#87cefa","#ee82ee","#ffc0cb"]; const 種類分類=全体.querySelector(".種類分類"); const あいてむ=種類分類.querySelectorAll(".お品書き"); const 仕切り線=種類分類.querySelector(".区分け"); let 動き方=種類分類.querySelector(".active"); function くりっく(item,index) {種類分類.style.removeProperty("--カスタムタイムアウト"); if(動き方==item)return; if(動き方){動き方.classList.remove("active");} item.classList.add("active"); 全体.style.backgroundColor=背景の色[index]; 動き方=item; 境界線(動き方,仕切り線);} function 境界線(element,仕切り線) {const 分かれ目=element.getBoundingClientRect(); const 左側=Math.floor(分かれ目.left-種類分類.offsetLeft-(仕切り線.offsetWidth-分かれ目.width)/2)+"px"; 仕切り線.style.transform=`translate3d(${左側},0,0)`;} 境界線(動き方,仕切り線); あいてむ.forEach((item,index)=> {item.addEventListener("click",()=>くりっく(item,index));}); window.addEventListener("resize",()=>{境界線(動き方,仕切り線); 種類分類.style.setProperty("--カスタムタイムアウト","none");}); </script>
sample_STUDY_html_003_E ▶[sample_STUDY_html_003_E.pdf\special_character.html.pdf] サンプル・ダウンロード