大和魂
2024/07/03
飽きてきた背景
変わり映えしない背景
どうも、The Infinity’sです。つい最近自分のサイトをみていて、思うことがあるのです。
「なんか背景が変わり映えしないな…」
と。なので今回作ってみることにしました。
蜂蜜牛乳
考えとしては…ある日、Scratchの@honey-milk1さんに
「伝統的な模様を作ってみてはどうか」(記憶が曖昧)
と言われて、作ろうと思ってたのですが、Scratchでつくろうにもキツかったのと、
つい最近まで他の人のサイト制作の手伝いや、日頃の業務が忙しかったので、
作る気が失せていたのですが、ひと段落したので、つくろうと思います。
いつもの
JavaScriptで作ります。理由は簡単なのと動作が速いからです。
ソースは私٩( ᐛ )و
変更前
const init_header = function () {
//headerの初期化
const header_text = `
<a href="/" aria-label="Home">
<img id="headerLogo" class="The-Infinitys" src="/image/The-Infinitys.webp" alt="" onerror="generate_Infinitys()" />
</a>
<h1>The Infinity's</h1>
<button
id="hamburger_menu_button"
aria-label="hamburger_menu_button"
onclick="hamburger_menu()">
<div
class="hamburger_menu_icon"
id="open_hamburger_menu">
<svg
viewBox="0 0 100 100"
fill="none"
stroke-width="10">
<line x1="10" y1="20" x2="90" y2="20" />
<line x1="10" y1="50" x2="90" y2="50" />
<line x1="10" y1="80" x2="90" y2="80" />
</svg>
</div>
<div
class="hamburger_menu_icon"
id="close_hamburger_menu"
style="opacity:0;"
>
<svg
viewBox="-60 -60 120 120"
fill="none"
>
<ellipse cx="-25" cy="0" rx="25" ry="20" stroke-width="2" />
<ellipse cx="25" cy="0" rx="25" ry="20" stroke-width="2" />
<circle cx="0" cy="0" r="50" stroke-width="4" />
</svg>
</div>
</button>
<!--hamburger menu-->
<table id="hamburger_menus">
<tr>
<th scope="col">
<!--icon-->
</th>
<!--name-->
<th scope="col">
</th>
</tr>
<tr>
<th>
<img
alt=""
loading="lazy"
class="hamburger_menus-contents-icons"
src="data:image/svg+xml;base64,PHN2ZwogIHZlcnNpb249IjEuMSIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgd2lkdGg9IjMyMS41IgogIGhlaWdodD0iMzIxLjUiCiAgdmlld0JveD0iMCwwLDMyMS41LDMyMS41Ij4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzkuMjUsLTE5LjI1KSI+CiAgICA8ZwogICAgICBkYXRhLXBhcGVyLWRhdGE9J3siaXNQYWludGluZ0xheWVyIjp0cnVlfScKICAgICAgZmlsbD0ibm9uZSIKICAgICAgZmlsbC1ydWxlPSJub256ZXJvIgogICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIKICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIgogICAgICBzdHJva2UtZGFzaGFycmF5PSIiCiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0PSIwIgogICAgICBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6IG5vcm1hbCI+CiAgICAgIDxwYXRoCiAgICAgICAgZD0iTTg2LDE4MGMwLC04NS4wNTE4NSA2OC45NDgxNSwtMTU0IDE1NCwtMTU0Yzg1LjA1MTg1LDAgMTU0LDY4Ljk0ODE1IDE1NCwxNTRjMCw4NS4wNTE4NSAtNjguOTQ4MTUsMTU0IC0xNTQsMTU0Yy04NS4wNTE4NSwwIC0xNTQsLTY4Ljk0ODE1IC0xNTQsLTE1NHoiCiAgICAgICAgc3Ryb2tlPSIjODg4ODg4IgogICAgICAgIHN0cm9rZS13aWR0aD0iMTMuNSIgLz4KICAgICAgPHBhdGgKICAgICAgICBkPSJNMjQwLDE4MGMwLDI1LjY4MTI0IC0zMy4zMTAwMSw0Ni41IC03NC40LDQ2LjVjLTQxLjA4OTk5LDAgLTc0LjQsLTIwLjgxODc2IC03NC40LC00Ni41YzAsLTI1LjY4MTI0IDMzLjMxMDAxLC00Ni41IDc0LjQsLTQ2LjVjNDEuMDg5OTksMCA3NC40LDIwLjgxODc2IDc0LjQsNDYuNXoiCiAgICAgICAgc3Ryb2tlPSIjODg4ODg4IgogICAgICAgIHN0cm9rZS13aWR0aD0iNSIgLz4KICAgICAgPHBhdGgKICAgICAgICBkPSJNMzg4LjgsMTgwYzAsMjUuNjgxMjQgLTMzLjMxMDAyLDQ2LjUgLTc0LjQsNDYuNWMtNDEuMDg5OTgsMCAtNzQuNCwtMjAuODE4NzYgLTc0LjQsLTQ2LjVjMCwtMjUuNjgxMjQgMzMuMzEwMDIsLTQ2LjUgNzQuNCwtNDYuNWM0MS4wODk5OCwwIDc0LjQsMjAuODE4NzYgNzQuNCw0Ni41eiIKICAgICAgICBzdHJva2U9IiM4ODg4ODgiCiAgICAgICAgc3Ryb2tlLXdpZHRoPSI1IiAvPgogICAgPC9nPgogIDwvZz48L3N2Zwo+PCEtLXJvdGF0aW9uQ2VudGVyOjE2MC43NToxNjAuNzUtLT4K" />
</th>
<th><a aria-label="Home" href="/">Home </a></th>
</tr>
<tr>
<th>
<img
alt=""
class="hamburger_menus-contents-icons"
src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSI0NC44MTU0IgogIGhlaWdodD0iNjMuMTI0NjciIHZpZXdCb3g9IjAsMCw0NC44MTU0LDYzLjEyNDY3Ij4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjE3LjU5MjMsLTE0Ni4wMTA1OSkiPgogICAgPGcgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aXNQYWludGluZ0xheWVyJnF1b3Q7OnRydWV9IiBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJheT0iIiBzdHJva2UtZGFzaG9mZnNldD0iMCIKICAgICAgc3R5bGU9Im1peC1ibGVuZC1tb2RlOiBub3JtYWwiPgogICAgICA8cGF0aCBkPSJNMjE4Ljg0MjMsMjA3Ljg4NTI3di01NS43NzA1M2g0Mi4zMTU0djU1Ljc3MDUzeiIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIyLjUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgZD0iTTIyMC45MDczNywxODBjMCwtMTAuNTQ0NTcgOC41NDgwNywtMTkuMDkyNjMgMTkuMDkyNjQsLTE5LjA5MjYzYzEwLjU0NDU3LDAgMTkuMDkyNjMsOC41NDgwNiAxOS4wOTI2MywxOS4wOTI2M2MwLDEwLjU0NDU3IC04LjU0ODA2LDE5LjA5MjY0IC0xOS4wOTI2MywxOS4wOTI2NGMtMTAuNTQ0NTcsMCAtMTkuMDkyNjQsLTguNTQ4MDcgLTE5LjA5MjY0LC0xOS4wOTI2NHoiCiAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIyIiAvPgogICAgICA8cGF0aAogICAgICAgIGQ9Ik0yNDAsMTgwYzAsMy42MjM0NSAtNC4wNDU4Myw2LjU2MDgzIC05LjAzNjYyLDYuNTYwODNjLTQuOTkwNzgsMCAtOS4wMzY2MSwtMi45MzczOSAtOS4wMzY2MSwtNi41NjA4M2MwLC0zLjYyMzQ1IDQuMDQ1ODMsLTYuNTYwODMgOS4wMzY2MSwtNi41NjA4M2M0Ljk5MDc4LDAgOS4wMzY2MiwyLjkzNzM5IDkuMDM2NjIsNi41NjA4M3oiCiAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiAvPgogICAgICA8cGF0aAogICAgICAgIGQ9Ik0yNTguMDczMjIsMTgwYzAsMy42MjM0NSAtNC4wNDU4Myw2LjU2MDgzIC05LjAzNjYxLDYuNTYwODNjLTQuOTkwNzgsMCAtOS4wMzY2MSwtMi45MzczOSAtOS4wMzY2MSwtNi41NjA4M2MwLC0zLjYyMzQ1IDQuMDQ1ODMsLTYuNTYwODMgOS4wMzY2MSwtNi41NjA4M2M0Ljk5MDc4LDAgOS4wMzY2MSwyLjkzNzM5IDkuMDM2NjEsNi41NjA4M3oiCiAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiAvPgogICAgICA8cGF0aCBkPSJNMjI2LjM1NzE0LDE1Mi40MzkxN2wzLjg1NzE1LC02LjQyODU3aDE4Ljg1NzE0bDQuNTcxNDMsNi40Mjg1N3oiIGZpbGw9IiM4ODg4ODgiIHN0cm9rZS13aWR0aD0iMCIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPjwhLS1yb3RhdGlvbkNlbnRlcjoyMi40MDc3MDAwMDAwMDAwMDY6MzMuOTg5NDA1MDAwMDAwMDA1LS0+" />
</th>
<th>
<a href="/blog/">Blog </a>
</th>
</tr>
<tr>
<th>
<img
alt=""
class="hamburger_menus-contents-icons"
src="data:image/svg+xml;base64,PHN2ZwogIHZlcnNpb249IjEuMSIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgd2lkdGg9IjU0LjgxODg1IgogIGhlaWdodD0iODEuOTQyMSIKICB2aWV3Qm94PSIwLDAsNTQuODE4ODUsODEuOTQyMSI+CiAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIxMywtMTM5Ljk5OTkpIj4KICAgIDxnCiAgICAgIGRhdGEtcGFwZXItZGF0YT0neyJpc1BhaW50aW5nTGF5ZXIiOnRydWV9JwogICAgICBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgIHN0cm9rZT0ibm9uZSIKICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIKICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIgogICAgICBzdHJva2UtZGFzaGFycmF5PSIiCiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0PSIwIgogICAgICBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6IG5vcm1hbCI+CiAgICAgIDxwYXRoCiAgICAgICAgZD0iTTI2Ni43OCwxOTkuNDMyYy0zLjIzLDguOTUgLTEyLjAxLDE0LjM5IC0yNi4wOSwxNi4xN2MtMC42NCwwLjA4IC0xLjI3LDAuMTMgLTEuOSwwLjE1Yy0wLjgyLDEuMiAtMS44OSwyLjI0IC0zLjE1LDMuMDVjLTMuMywyLjExIC02LjM5LDMuMTQgLTkuNDQsMy4xNGMtNi4yNywwIC0xMy4wMiwtNC42OCAtMTMuMDIsLTE0Ljk2YzAsLTAuNyAwLjAzLC0xLjYxIDAuMSwtMi44N2MwLjAzLC0wLjU0IDAuMDYsLTAuOTYgMC4wNywtMS4yN2MtMC4xNywtMC43OCAtMC4yNiwtMS41NyAtMC4yNiwtMi4zN3YtNC44NGMwLC0wLjc5IDAuMDgsLTEuNTggMC4yNCwtMi4zN2MwLjAxLC0wLjY3IDAuMDQsLTEuNDIgMC4wOSwtMi4yNGMtMC4yNCwtMC44OCAtMC40MiwtMS45IC0wLjQyLC0zLjA0YzAsLTAuNTIgMC4wNCwtMS4wNCAwLjExLC0xLjU1YzAuMzgsLTIuNjggMS41NywtNS4zNyAzLjU4LC03LjUyYy0wLjY5LC0xLjkzIC0xLjA1LC0zLjk3IC0xLjA1LC02LjA2di01LjFjMCwtMi4wNyAwLjQxLC00LjY1IDIuNDIsLTExLjA3YzAuODQsLTIuNzYgMS4xMSwtMy42MiAxLjQ4LC00LjQyYzEuOTcsLTQuNDIgNC45NCwtNi42MyA3LjEsLTcuNzJjMy41MywtMS43NiA3LjMyLC0yLjY2IDExLjI2LC0yLjY2YzEuODIsMCAzLjU2LDAuMTkgNS4yMiwwLjU1YzAuNzQsLTAuNSAxLjUzLC0wLjkyIDIuMzcsLTEuMjdjMS4wNywtMC40NiAyLjIxLC0wLjc4IDMuNDcsLTAuOThjMy4xNSwtMC41NCA2LjQ4LDAuMTMgOS4zOCwxLjg5YzMuMDUsMS44NiA2LjU1LDUuNzIgNi4xMiwxMy42NmMtMC4wNywxLjQgLTAuMTksMy4yNyAtMC4zNyw1LjcxYy0wLjAxLDAuMDYgLTAuMDEsMC4xMiAtMC4wMiwwLjE4Yy0wLjE2LDEuNzcgLTAuMzksNC40MSAtMC43LDcuOWMwLjA4LDEuMzUgMC4wNSwyLjg2IC0wLjA3LDQuNjRjLTAuMDUsMC42OCAtMC4xNiwxLjM2IC0wLjM0LDIuMDJjLTAuMDQsMC4xNSAtMC4wOCwwLjI5IC0wLjEyLDAuNDJjMS4zNSwxLjczIDIuMjcsMy40NiAyLjksNC45NmMwLjU5LDEuMTkgMS4wOSwyLjU2IDEuNTMsNC4yM2MwLjE3LDAuNjMgMC4yOCwxLjI3IDAuMzMsMS45MmMwLjQ1LDUuNjEgMC4yMiw4LjkyIC0wLjgyLDExLjcyeiIKICAgICAgICBmaWxsPSIjZmZiZDAxIiAvPgogICAgICA8cGF0aAogICAgICAgIGQ9Ik0yNTYuNjM2LDE4OC41OTZjMC4yOTMsMy42MzcgMC4yMzMsNS45ODEgLTAuMTc2LDcuMDM3Yy0xLjcwMiw0LjgwOSAtNy40Miw3LjgyOCAtMTcuMTUyLDkuMDZjLTMuMjg1LDAuNDExIC02LjU2OCwtMS4xNDMgLTkuODUzLC00LjY2MmMwLDAuNTI4IDAuMTE3LDIuMTExIDAuMzUzLDQuNzUxYzAuMTc2LDEuOTM1IDAuMTQ2LDMuNTE4IC0wLjA4OCw0Ljc0OWMtMS40NjcsMC45MzggLTIuNjM5LDEuNDA4IC0zLjUxOSwxLjQwOGMtMS4zNSwwIC0yLjAyMywtMS4zMTkgLTIuMDIzLC0zLjk1OWMwLC0wLjQ2OSAwLjAyOSwtMS4yMTYgMC4wODgsLTIuMjQyYzAuMDU4LC0xLjAyNSAwLjA4OCwtMS43NDQgMC4wODgsLTIuMTU1YzAsLTAuOTk3IC0wLjA4OCwtMS43IC0wLjI2NCwtMi4xMTF2LTQuODM4YzAsLTAuMTE3IDAuMDI5LC0wLjI0OSAwLjA4OCwtMC4zOTZjMC4wNTgsLTAuMTQ2IDAuMTE3LC0wLjI3OCAwLjE3NiwtMC4zOTZjLTAuMDU5LC0wLjgyIC0wLjAzLC0yLjA4MSAwLjA4OCwtMy43ODJjMC4xMTcsLTEuMDU2IDAuMTE3LC0xLjcyOSAwLC0yLjAyM2MtMC4yOTQsLTAuNTg1IC0wLjQzOSwtMC45MzcgLTAuNDM5LC0xLjA1NWMwLjIzMywtMS42NDIgMS40MzcsLTIuNDYzIDMuNjA2LC0yLjQ2M2MxLjQwNywwIDIuMjU3LDAuNDk5IDIuNTUxLDEuNDk1YzAsMC45MzggMC4xMTcsMi4zMTcgMC4zNTIsNC4xMzRjMC4zNTMsMi4xMTEgMS40NjYsNC4yMjMgMy4zNDMsNi4zMzNjMi4wNTIsMi40MDUgNC4wMTYsMy41MTkgNS44OTQsMy4zNDNjMi4xMTEsLTAuMjMzIDQuMjIyLC0wLjczMiA2LjMzMywtMS40OTVjMi45MzIsLTEuMDU2IDQuNjkxLC0yLjI4NyA1LjI3OCwtMy42OTRjMC40MDksLTEuMDU2IDAuNjE1LC0yLjE2OSAwLjYxNSwtMy4zNDNjMCwtMy41NzYgLTEuMzE5LC02LjI0NSAtMy45NTgsLTguMDA0Yy0xLjE3NCwtMC43NjIgLTMuMzQzLC0xLjM3OCAtNi41MSwtMS44NDhjLTEuODE4LC0wLjIzMyAtMi45MzMsLTAuMzUyIC0zLjM0MiwtMC4zNTJjLTIuODE1LDAuMDU5IC01LjQ0LC0wLjg1IC03Ljg3MywtMi43MjdjLTIuNDM0LC0xLjg3NiAtMy42NSwtNC4wNDcgLTMuNjUsLTYuNTF2LTUuMTAxYzAsLTEuMTEzIDAuNjQ1LC0zLjcyMyAxLjkzNiwtNy44MjhjMC41ODUsLTEuOTM2IDAuOTA4LC0yLjk2MSAwLjk2OCwtMy4wNzljMC41MjcsLTEuMjMxIDEuMjAxLC0yLjA1MiAyLjAyMiwtMi40NjNjMS45OTMsLTAuOTk2IDQuMTA0LC0xLjQ5NSA2LjMzMywtMS40OTVjNC4zMzksMCA3LjUzNSwxLjc1OSA5LjU4OCw1LjI3N2MwLjE3NiwwLjE3NiAwLjQ2OSwwLjQ0IDAuODgsMC43OTJjMC4wNTgsLTAuODIgMC4xNzYsLTIuMDgxIDAuMzUyLC0zLjc4MmMtMC4wNTksLTAuNzYyIC0wLjExOCwtMS40OTUgLTAuMTc2LC0yLjE5OWMwLC0wLjgyIDAuNDA5LC0xLjM3NyAxLjIzMSwtMS42NzFjMC4yMzQsLTAuMTE3IDAuNTU3LC0wLjIwNSAwLjk2OCwtMC4yNjRjMC41ODYsLTAuMTE3IDEuMjE3LDAuMDMgMS44OTIsMC40MzljMC42NzMsMC40MTEgMC45NTIsMS42NDMgMC44MzUsMy42OTRjLTAuMDU5LDEuMjkgLTAuMTc2LDMuMTA4IC0wLjM1Miw1LjQ1M2MtMC4xNzYsMS45MzYgLTAuNDM5LDQuODk3IC0wLjc5Miw4Ljg4NWMwLjExNywwLjkzOCAwLjExNywyLjIyOSAwLDMuODdjLTAuMjk0LDEuMTE0IC0xLjE3NCwxLjY3MSAtMi42MzksMS42NzFjLTAuNzYzLDAgLTEuNDk1LC0wLjIwNSAtMi4xOTksLTAuNjE1Yy0wLjM1MiwtMS4xMTMgLTAuNTI3LC0xLjU4NCAtMC41MjcsLTEuNDA4YzAuMTE2LC0xLjU4MyAtMC4yMDYsLTMuNjk0IC0wLjk2OCwtNi4zMzNjLTAuNjQ2LC0xLjM0OCAtMS41MzksLTMuMjY4IC0yLjY4MywtNS43NjFjLTEuMTQ0LC0yLjQ5MiAtMi42NTQsLTMuODI3IC00LjUzLC00LjAwM2MtMi4zNDYsLTAuMTc2IC0zLjg3LDAuNjE2IC00LjU3NCwyLjM3NWMtMC4yMzQsMC43NjMgLTAuNTU4LDEuODc4IC0wLjk2NywzLjM0M2MtMC43MDQsMi4xNyAtMS4xNDQsNC4yNTIgLTEuMzIsNi4yNDVjLTAuMDU5LDAuNjQ2IC0wLjExOCwwLjkxIC0wLjE3NiwwLjc5MmMwLjE3NiwxLjE3NCAwLjM4MSwyLjM0NiAwLjYxNiwzLjUxOWMwLjI5MywxLjQ2NiAxLjAxMiwyLjU4MSAyLjE1NSwzLjM0MmMxLjE0NCwwLjc2MyAzLjMyNywxLjIzMSA2LjU1MywxLjQwN2M3LjkxNiwwLjQ3MSAxMi44MTIsMy4yMjcgMTQuNjg5LDguMjY5YzAuMjkyLDAuNDcgMC41ODUsMS4yNjEgMC44NzksMi4zNzR6IgogICAgICAgIGZpbGw9IiM4NTVjZDYiIC8+CiAgICA8L2c+CiAgPC9nPjwvc3ZnCj48IS0tcm90YXRpb25DZW50ZXI6Mjc6NDAuMDAwMDk5Njk3NzA1NTQtLT4K" />
</th>
<th>
<a href="https://scratch.mit.edu/users/The_Infinitys">Scratch </a>
</th>
</tr>
<tr>
<th>
<img
alt=""
class="hamburger_menus-contents-icons"
src="data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiPgogIDxwYXRoCiAgICBmaWxsPSIjODg4ODg4IgogICAgZD0iTTEyIDBjLTYuNjI2IDAtMTIgNS4zNzMtMTIgMTIgMCA1LjMwMiAzLjQzOCA5LjggOC4yMDcgMTEuMzg3LjU5OS4xMTEuNzkzLS4yNjEuNzkzLS41Nzd2LTIuMjM0Yy0zLjMzOC43MjYtNC4wMzMtMS40MTYtNC4wMzMtMS40MTYtLjU0Ni0xLjM4Ny0xLjMzMy0xLjc1Ni0xLjMzMy0xLjc1Ni0xLjA4OS0uNzQ1LjA4My0uNzI5LjA4My0uNzI5IDEuMjA1LjA4NCAxLjgzOSAxLjIzNyAxLjgzOSAxLjIzNyAxLjA3IDEuODM0IDIuODA3IDEuMzA0IDMuNDkyLjk5Ny4xMDctLjc3NS40MTgtMS4zMDUuNzYyLTEuNjA0LTIuNjY1LS4zMDUtNS40NjctMS4zMzQtNS40NjctNS45MzEgMC0xLjMxMS40NjktMi4zODEgMS4yMzYtMy4yMjEtLjEyNC0uMzAzLS41MzUtMS41MjQuMTE3LTMuMTc2IDAgMCAxLjAwOC0uMzIyIDMuMzAxIDEuMjMuOTU3LS4yNjYgMS45ODMtLjM5OSAzLjAwMy0uNDA0IDEuMDIuMDA1IDIuMDQ3LjEzOCAzLjAwNi40MDQgMi4yOTEtMS41NTIgMy4yOTctMS4yMyAzLjI5Ny0xLjIzLjY1MyAxLjY1My4yNDIgMi44NzQuMTE4IDMuMTc2Ljc3Ljg0IDEuMjM1IDEuOTExIDEuMjM1IDMuMjIxIDAgNC42MDktMi44MDcgNS42MjQtNS40NzkgNS45MjEuNDMuMzcyLjgyMyAxLjEwMi44MjMgMi4yMjJ2My4yOTNjMCAuMzE5LjE5Mi42OTQuODAxLjU3NiA0Ljc2NS0xLjU4OSA4LjE5OS02LjA4NiA4LjE5OS0xMS4zODYgMC02LjYyNy01LjM3My0xMi0xMi0xMnoiIC8+Cjwvc3ZnPgo=" />
</th>
<th>
<a href="https://github.com/The-Infinitys">GitHub </a>
</th>
</tr>
<tr>
<th>
<img
alt=""
class="hamburger_menus-contents-icons"
src="data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjIyNjAiIHdpZHRoPSIyNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAuMjU0IDAuMjUgNTAwIDQ1MS45NTQwMDAwMDAwMDAwNiI+PHBhdGggZD0iTTM5NC4wMzMuMjVoNzYuNjdMMzAzLjIwMiAxOTEuNjkzbDE5Ny4wNTIgMjYwLjUxMWgtMTU0LjI5TDIyNS4xMTggMjk0LjIwNSA4Ni44NDQgNDUyLjIwNEgxMC4xMjdsMTc5LjE2LTIwNC43N0wuMjU0LjI1SDE1OC40NmwxMDkuMjM0IDE0NC40MTd6bS0yNi45MDggNDA2LjA2M2g0Mi40ODNMMTM1LjM3NyA0My43M2gtNDUuNTl6IiBmaWxsPSIjODg4Ii8+PC9zdmc+Cg==" />
</th>
<th>
<a href="https://x.com/Mugen_Infinitys/">X </a>
</th>
</tr>
</table>
`;
const header = document.createElement("header");
header.style = `
animation-name: show;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: initial;
`;
header.innerHTML = header_text;
document.body.prepend(header);
};
const init_footer = function () {
//headerの初期化
const footer_text = `
<div>
<div>
<p><a href="/contact/">Contact to The Infinity's</a></p>
<p><a href="/blog/">Watch The Infinity's Blog</a></p>
<p><a href="https://scratch.mit.edu/users/The_Infinitys/">Go to Scratch profile</a></p>
<p><a href="https://github.com/The_Infinitys/">Go to GitHub profile</a></p>
</div>
</div>
<h1>© 2024 The Infinity's</h1>
`;
const footer = document.createElement("footer");
footer.style = `
animation-name: show;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: initial;
`;
footer.innerHTML = footer_text;
document.body.append(footer);
};
const generate_Infinitys = function () {
const The_Infinitys = (size, quality) => {
const hsvToRgb16 = function (hue, saturation, value) {
var result = false;
if (
(saturation || saturation === 0) &&
saturation <= 100 &&
(value || value === 0) &&
value <= 100
) {
var red = 0,
green = 0,
blue = 0,
i = 0,
f = 0,
q = 0,
p = 0,
t = 0;
hue = Number(hue % 360) / 60;
saturation = Number(saturation) / 100;
value = Number(value) / 100;
if (saturation === 0) {
red = value;
green = value;
blue = value;
} else {
i = Math.floor(hue);
f = hue - i;
p = value * (1 - saturation);
q = value * (1 - saturation * f);
t = value * (1 - saturation * (1 - f));
switch (i) {
case 0:
red = value;
green = t;
blue = p;
break;
case 1:
red = q;
green = value;
blue = p;
break;
case 2:
red = p;
green = value;
blue = t;
break;
case 3:
red = p;
green = q;
blue = value;
break;
case 4:
red = t;
green = p;
blue = value;
break;
case 5:
red = value;
green = p;
blue = q;
break;
}
}
result = {
red: Math.round(red * 255).toString(),
green: Math.round(green * 255).toString(),
blue: Math.round(blue * 255).toString(),
};
}
return "rgb(" + result.red + "," + result.green + "," + result.blue + ")";
};
const inf = (t) => {
if (t < 0 || 720 < t) {
return inf(t % 720);
}
const r = t * (Math.PI / 180);
if (t < 360) {
return {
x: 100 * (Math.cos(r) - 1),
y: Math.sin(r) * 80,
};
} else {
return {
x: -100 * (Math.cos(r) - 1),
y: Math.sin(r) * 80,
};
}
};
const circle = (t) => {
if (t < 0 || 360 < t) {
return circle(t % 360);
}
const r = t * (Math.PI / 180);
return {
x: Math.cos(r),
y: Math.sin(r),
};
};
const canvas = document.createElement("canvas");
canvas.width = size;
canvas.height = size;
const graphics = canvas.getContext("2d");
graphics.clearRect(0, 0, canvas.width, canvas.height);
let before_data = inf(0);
graphics.lineWidth = canvas.width / 57;
for (let i = 0; i <= 720; i += quality) {
const data = inf(i);
graphics.beginPath();
graphics.moveTo(
(before_data.x * canvas.width) / 500 + canvas.width / 2,
(before_data.y * canvas.height) / 500 + canvas.height / 2
);
graphics.lineTo(
(data.x * canvas.width) / 500 + canvas.width / 2,
(data.y * canvas.height) / 500 + canvas.height / 2
);
graphics.closePath();
graphics.strokeStyle = hsvToRgb16(((data.x + 200) / 400) * 360, 100, 100);
graphics.stroke();
before_data = data;
}
before_data = circle(0);
graphics.lineWidth = canvas.width / 777;
for (let count = 0; count < 777; count += quality * 10) {
for (let t = 0; t <= 360; t += quality) {
let data = circle(t);
data.x *= 1 - count / 7777;
data.y *= 1 - count / 7777;
graphics.beginPath();
graphics.moveTo(
(before_data.x * canvas.width) / 2.22 + canvas.width / 2,
(before_data.y * canvas.height) / 2.22 + canvas.height / 2
);
graphics.lineTo(
(data.x * canvas.width) / 2.22 + canvas.width / 2,
(data.y * canvas.height) / 2.22 + canvas.height / 2
);
graphics.closePath();
graphics.strokeStyle = hsvToRgb16(
(t + 360 + count / 7.7) % 360,
100,
100
);
graphics.stroke();
before_data = data;
}
}
return canvas.toDataURL("image/webp", 1);
};
const elems = document.getElementsByClassName("The-Infinitys");
for (let i = 0; i < elems.length; ++i) {
elems[i].src = The_Infinitys(400, 2);
}
};
//ハンバーガーメニューの設定
let is_opened_hamburgerMenu = false;
function hamburger_menu() {
is_opened_hamburgerMenu = !is_opened_hamburgerMenu;
const menu = document.querySelector("#hamburger_menus");
const open_button = document.querySelector("#open_hamburger_menu");
const close_button = document.querySelector("#close_hamburger_menu");
if (is_opened_hamburgerMenu) {
//open the menu
open_button.classList.remove("hamburger_menu_icon_show");
open_button.classList.add("hamburger_menu_icon_hide");
close_button.classList.remove("hamburger_menu_icon_hide");
close_button.classList.add("hamburger_menu_icon_show");
menu.classList.add("hamburger-open");
menu.classList.remove("hamburger-close");
open_button.style.opacity = "0";
close_button.style.opacity = "1";
menu.style.left = "calc(100vw - var(--hamburger-width))";
menu.style.opacity = "1";
} else {
//close the menu
open_button.classList.add("hamburger_menu_icon_show");
open_button.classList.remove("hamburger_menu_icon_hide");
close_button.classList.add("hamburger_menu_icon_hide");
close_button.classList.remove("hamburger_menu_icon_show");
menu.classList.add("hamburger-close");
menu.classList.remove("hamburger-open");
open_button.style.opacity = "1";
close_button.style.opacity = "0";
menu.style.left = "100vw";
menu.style.opacity = "0";
}
}
const generate_honeycomb = () => {
//ダークモード・ライトモード対応
const root3 = 1.7320508;
const RainbowHoneycomb = document.createElement("canvas");
RainbowHoneycomb.id = "RainbowHoneycomb";
RainbowHoneycomb.style = `
position:fixed;
width:100vw;
height:100vh;
top:0;
left:0;
z-index:-100;
animation-name: show;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: initial;
`;
document.body.append(RainbowHoneycomb);
const draw = RainbowHoneycomb.getContext("2d");
const rainbow_svg = document.createElement("div");
rainbow_svg.id = "rainbow-back";
document.body.append(rainbow_svg);
const honeycomb = (x, y, r, color) => {
draw.fillStyle = color;
draw.beginPath();
draw.moveTo(x, y - r);
draw.lineTo(x + (root3 / 2) * r, y - r / 2);
draw.lineTo(x + (root3 / 2) * r, y + r / 2);
draw.lineTo(x, y + r);
draw.lineTo(x - (root3 / 2) * r, y + r / 2);
draw.lineTo(x - (root3 / 2) * r, y - r / 2);
draw.fill();
};
const radius = 50;
const radius_percent = 1.12;
// const hsvToRgb16 = function (hue, saturation, value) {
// var result = false;
// if (
// (saturation || saturation === 0) &&
// saturation <= 100 &&
// (value || value === 0) &&
// value <= 100
// ) {
// var red = 0,
// green = 0,
// blue = 0,
// i = 0,
// f = 0,
// q = 0,
// p = 0,
// t = 0;
// hue = Number(hue % 360) / 60;
// saturation = Number(saturation) / 100;
// value = Number(value) / 100;
// if (saturation === 0) {
// red = value;
// green = value;
// blue = value;
// } else {
// i = Math.floor(hue);
// f = hue - i;
// p = value * (1 - saturation);
// q = value * (1 - saturation * f);
// t = value * (1 - saturation * (1 - f));
// switch (i) {
// case 0:
// red = value;
// green = t;
// blue = p;
// break;
// case 1:
// red = q;
// green = value;
// blue = p;
// break;
// case 2:
// red = p;
// green = value;
// blue = t;
// break;
// case 3:
// red = p;
// green = q;
// blue = value;
// break;
// case 4:
// red = t;
// green = p;
// blue = value;
// break;
// case 5:
// red = value;
// green = p;
// blue = q;
// break;
// }
// }
// result = {
// red: Math.round(red * 255).toString(),
// green: Math.round(green * 255).toString(),
// blue: Math.round(blue * 255).toString(),
// };
// }
// return "rgb(" + result.red + "," + result.green + "," + result.blue + ")";
// };
const drawhoneycomb = (color) => {
draw.clearRect(0, 0, RainbowHoneycomb.width, RainbowHoneycomb.height);
for (let i = 0; i < Math.round(RainbowHoneycomb.width / radius) + 2; ++i) {
for (
let j = 0;
j < Math.round(RainbowHoneycomb.height / radius) + 2;
++j
) {
honeycomb(
radius * 2 * i + (j % 2) * radius,
((radius * 2 * root3) / 2) * j,
radius * radius_percent,
color
);
}
}
};
const renewHoneycombCanvas = () => {
RainbowHoneycomb.width = window.innerWidth * window.devicePixelRatio;
RainbowHoneycomb.height = window.innerHeight * window.devicePixelRatio;
if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
drawhoneycomb("#000");
} else {
drawhoneycomb("#fff");
}
};
renewHoneycombCanvas();
window.onresize = renewHoneycombCanvas;
const mediaQueryList = window.matchMedia("(prefers-color-scheme: dark)");
// 最初の判定
if (mediaQueryList.matches) {
console.log("dark-mode is enabled.");
} else {
console.log("light-mode is enabled");
}
// メディアクエリの変化を監視するリスナー関数を定義
const listener_honeycomb = function (event) {
if (event.matches) {
console.log("swaped to dark-mode");
} else {
console.log("swaped to light-mode");
}
renewHoneycombCanvas();
};
mediaQueryList.addEventListener("change", listener_honeycomb);
};
const generate_style = () => {
const dark_back = document.createElement("img");
dark_back.src =
"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIzNjAiIGhlaWdodD0iMzYwIiB2aWV3Qm94PSIwLDAsMzYwLDM2MCI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTYwLDApIj48ZyBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpc1BhaW50aW5nTGF5ZXImcXVvdDs6dHJ1ZX0iIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjAiIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9IiIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsIj48cGF0aCBkPSJNNjAsMzYwdi0zNjBoMzYwdjM2MHoiIGZpbGw9IiMwMDAwMDAiLz48cGF0aCBkPSJNNjAsMTgwdi0xODBoMTgweiIgZmlsbD0iIzI3MjcyNyIvPjxwYXRoIGQ9Ik02MCw5MHYtOTBoMTgweiIgZmlsbD0iIzg4ODg4OCIvPjxwYXRoIGQ9Ik00MjAsMTgwdjE4MGgtMTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiMyNzI3MjciLz48cGF0aCBkPSJNNDIwLDI3MHY5MGgtMTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiM4ODg4ODgiLz48cGF0aCBkPSJNMjQwLDBsMTgwLDB2MTgweiIgZmlsbD0iIzI3MjcyNyIvPjxwYXRoIGQ9Ik0zMzAsMGw5MCwwdjE4MHoiIGZpbGw9IiM4ODg4ODgiLz48cGF0aCBkPSJNMjQwLDM2MGwtMTgwLDBsMCwtMTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiMyNzI3MjciLz48cGF0aCBkPSJNMTUwLDM2MGgtOTBsMCwtMTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiM4ODg4ODgiLz48L2c+PC9nPjwvc3ZnPjwhLS1yb3RhdGlvbkNlbnRlcjoxODA6MTgwLS0+";
dark_back.id = "dark-mobile";
dark_back.alt = "";
dark_back.style = `
position:fixed;
width:100vw;
height:100vh;
top:0;
left:0;
z-index:-1000;
`;
document.body.append(dark_back);
const light_back = document.createElement("img");
light_back.src =
"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzYwIiBoZWlnaHQ9IjM2MCIgdmlld0JveD0iMCwwLDM2MCwzNjAiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02MCwwKSI+PGcgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aXNQYWludGluZ0xheWVyJnF1b3Q7OnRydWV9IiBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIwIiBzdHJva2UtbGluZWNhcD0iYnV0dCIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIiIHN0cm9rZS1kYXNob2Zmc2V0PSIwIiBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6IG5vcm1hbCI+PHBhdGggZD0iTTYwLDM2MHYtMzYwaDM2MHYzNjB6IiBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpbmRleCZxdW90OzpudWxsfSIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0yNDAsMGgxODB2MTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiNjM2MzYzMiLz48cGF0aCBkPSJNMjQwLDBoMTgwdjkweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiM4ODg4ODgiLz48cGF0aCBkPSJNMjQwLDM2MGgtMTgwdi0xODB6IiBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpbmRleCZxdW90OzpudWxsfSIgZmlsbD0iI2MzYzNjMyIvPjxwYXRoIGQ9Ik0yNDAsMzYwaC0xODB2LTkweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiM4ODg4ODgiLz48cGF0aCBkPSJNNjAsMTgwdi0xODBoMTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiNjM2MzYzMiLz48cGF0aCBkPSJNNjAsMTgwdi0xODBoOTB6IiBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpbmRleCZxdW90OzpudWxsfSIgZmlsbD0iIzg4ODg4OCIvPjxwYXRoIGQ9Ik00MjAsMTgwdjE4MGgtMTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiNjM2MzYzMiLz48cGF0aCBkPSJNNDIwLDE4MHYxODBoLTkweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiM4ODg4ODgiLz48L2c+PC9nPjwvc3ZnPjwhLS1yb3RhdGlvbkNlbnRlcjoxODA6MTgwLS0+";
light_back.id = "light-mobile";
light_back.alt = "";
light_back.style = `
position:fixed;
width:100vw;
height:100vh;
top:0;
left:0;
z-index:-999;
`;
document.body.append(light_back);
const center_inf = document.createElement("img");
center_inf.src =
"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIxNzQiIGhlaWdodD0iMTc0IiB2aWV3Qm94PSIwLDAsMTc0LDE3NCI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE1MywtOTMpIj48ZyBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpc1BhaW50aW5nTGF5ZXImcXVvdDs6dHJ1ZX0iIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSIjNzc3Nzc3IiBzdHJva2UtbGluZWNhcD0iYnV0dCIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIiIHN0cm9rZS1kYXNob2Zmc2V0PSIwIiBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6IG5vcm1hbCI+PHBhdGggZD0iTTE1NSwxODBjMCwtMTguNzc3NjggMTkuMDI3OSwtMzQgNDIuNSwtMzRjMjMuNDcyMTEsMCA0Mi41LDE1LjIyMjMyIDQyLjUsMzRjMCwxOC43Nzc2OCAtMTkuMDI3ODksMzQgLTQyLjUsMzRjLTIzLjQ3MjEsMCAtNDIuNSwtMTUuMjIyMzIgLTQyLjUsLTM0eiIgc3Ryb2tlLXdpZHRoPSIyIi8+PHBhdGggZD0iTTI0MCwxODBjMCwtMTguNzc3NjggMTkuMDI3OSwtMzQgNDIuNSwtMzRjMjMuNDcyMTEsMCA0Mi41LDE1LjIyMjMyIDQyLjUsMzRjMCwxOC43Nzc2OCAtMTkuMDI3ODksMzQgLTQyLjUsMzRjLTIzLjQ3MjEsMCAtNDIuNSwtMTUuMjIyMzIgLTQyLjUsLTM0eiIgc3Ryb2tlLXdpZHRoPSIyIi8+PHBhdGggZD0iTTE1NSwxODBjMCwtNDYuOTQ0MiAzOC4wNTU4LC04NSA4NSwtODVjNDYuOTQ0MiwwIDg1LDM4LjA1NTggODUsODVjMCw0Ni45NDQyIC0zOC4wNTU4LDg1IC04NSw4NWMtNDYuOTQ0MiwwIC04NSwtMzguMDU1OCAtODUsLTg1eiIgc3Ryb2tlLXdpZHRoPSI0Ii8+PC9nPjwvZz48L3N2Zz48IS0tcm90YXRpb25DZW50ZXI6ODc6ODctLT4=";
center_inf.alt = "";
center_inf.style = `
position:fixed;
width:50vw;
height:50vw;
transform: translate(-50%,-50%);
top:50vh;
left:50vw;
z-index:-100;
animation-name: show;
animation-duration: 2s;
animation-timing-function: linear;
animation-iteration-count: initial;
`;
document.body.append(center_inf);
};
const is_phone = () => {
const ua = navigator.userAgent;
if (ua.indexOf("iPhone") >= 0) {
return true;
}
if (ua.indexOf("iPad") >= 0) {
return true;
}
if (ua.indexOf("Android") >= 0) {
return true;
}
return false;
};
const The_Infinitys_main = () => {
init_header();
init_footer();
if (Math.random() < 0) {
generate_style();
} else {
generate_honeycomb();
}
};
The_Infinitys_main();
変更後
const init_header = function () {
//headerの初期化
const header_text = `
<a href="/" aria-label="Home">
<img id="headerLogo" class="The-Infinitys" src="/image/The-Infinitys.webp" alt="" onerror="generate_Infinitys()" />
</a>
<h1>The Infinity's</h1>
<button
id="hamburger_menu_button"
aria-label="hamburger_menu_button"
onclick="hamburger_menu()">
<div
class="hamburger_menu_icon"
id="open_hamburger_menu">
<svg
viewBox="0 0 100 100"
fill="none"
stroke-width="10">
<line x1="10" y1="20" x2="90" y2="20" />
<line x1="10" y1="50" x2="90" y2="50" />
<line x1="10" y1="80" x2="90" y2="80" />
</svg>
</div>
<div
class="hamburger_menu_icon"
id="close_hamburger_menu"
style="opacity:0;"
>
<svg
viewBox="-60 -60 120 120"
fill="none"
>
<ellipse cx="-25" cy="0" rx="25" ry="20" stroke-width="2" />
<ellipse cx="25" cy="0" rx="25" ry="20" stroke-width="2" />
<circle cx="0" cy="0" r="50" stroke-width="4" />
</svg>
</div>
</button>
<!--hamburger menu-->
<table id="hamburger_menus">
<tr>
<th scope="col">
<!--icon-->
</th>
<!--name-->
<th scope="col">
</th>
</tr>
<tr>
<th>
<img
alt=""
loading="lazy"
class="hamburger_menus-contents-icons"
src="data:image/svg+xml;base64,PHN2ZwogIHZlcnNpb249IjEuMSIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgd2lkdGg9IjMyMS41IgogIGhlaWdodD0iMzIxLjUiCiAgdmlld0JveD0iMCwwLDMyMS41LDMyMS41Ij4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzkuMjUsLTE5LjI1KSI+CiAgICA8ZwogICAgICBkYXRhLXBhcGVyLWRhdGE9J3siaXNQYWludGluZ0xheWVyIjp0cnVlfScKICAgICAgZmlsbD0ibm9uZSIKICAgICAgZmlsbC1ydWxlPSJub256ZXJvIgogICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIKICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIgogICAgICBzdHJva2UtZGFzaGFycmF5PSIiCiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0PSIwIgogICAgICBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6IG5vcm1hbCI+CiAgICAgIDxwYXRoCiAgICAgICAgZD0iTTg2LDE4MGMwLC04NS4wNTE4NSA2OC45NDgxNSwtMTU0IDE1NCwtMTU0Yzg1LjA1MTg1LDAgMTU0LDY4Ljk0ODE1IDE1NCwxNTRjMCw4NS4wNTE4NSAtNjguOTQ4MTUsMTU0IC0xNTQsMTU0Yy04NS4wNTE4NSwwIC0xNTQsLTY4Ljk0ODE1IC0xNTQsLTE1NHoiCiAgICAgICAgc3Ryb2tlPSIjODg4ODg4IgogICAgICAgIHN0cm9rZS13aWR0aD0iMTMuNSIgLz4KICAgICAgPHBhdGgKICAgICAgICBkPSJNMjQwLDE4MGMwLDI1LjY4MTI0IC0zMy4zMTAwMSw0Ni41IC03NC40LDQ2LjVjLTQxLjA4OTk5LDAgLTc0LjQsLTIwLjgxODc2IC03NC40LC00Ni41YzAsLTI1LjY4MTI0IDMzLjMxMDAxLC00Ni41IDc0LjQsLTQ2LjVjNDEuMDg5OTksMCA3NC40LDIwLjgxODc2IDc0LjQsNDYuNXoiCiAgICAgICAgc3Ryb2tlPSIjODg4ODg4IgogICAgICAgIHN0cm9rZS13aWR0aD0iNSIgLz4KICAgICAgPHBhdGgKICAgICAgICBkPSJNMzg4LjgsMTgwYzAsMjUuNjgxMjQgLTMzLjMxMDAyLDQ2LjUgLTc0LjQsNDYuNWMtNDEuMDg5OTgsMCAtNzQuNCwtMjAuODE4NzYgLTc0LjQsLTQ2LjVjMCwtMjUuNjgxMjQgMzMuMzEwMDIsLTQ2LjUgNzQuNCwtNDYuNWM0MS4wODk5OCwwIDc0LjQsMjAuODE4NzYgNzQuNCw0Ni41eiIKICAgICAgICBzdHJva2U9IiM4ODg4ODgiCiAgICAgICAgc3Ryb2tlLXdpZHRoPSI1IiAvPgogICAgPC9nPgogIDwvZz48L3N2Zwo+PCEtLXJvdGF0aW9uQ2VudGVyOjE2MC43NToxNjAuNzUtLT4K" />
</th>
<th><a aria-label="Home" href="/">Home </a></th>
</tr>
<tr>
<th>
<img
alt=""
class="hamburger_menus-contents-icons"
src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSI0NC44MTU0IgogIGhlaWdodD0iNjMuMTI0NjciIHZpZXdCb3g9IjAsMCw0NC44MTU0LDYzLjEyNDY3Ij4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjE3LjU5MjMsLTE0Ni4wMTA1OSkiPgogICAgPGcgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aXNQYWludGluZ0xheWVyJnF1b3Q7OnRydWV9IiBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiCiAgICAgIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJheT0iIiBzdHJva2UtZGFzaG9mZnNldD0iMCIKICAgICAgc3R5bGU9Im1peC1ibGVuZC1tb2RlOiBub3JtYWwiPgogICAgICA8cGF0aCBkPSJNMjE4Ljg0MjMsMjA3Ljg4NTI3di01NS43NzA1M2g0Mi4zMTU0djU1Ljc3MDUzeiIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIyLjUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgZD0iTTIyMC45MDczNywxODBjMCwtMTAuNTQ0NTcgOC41NDgwNywtMTkuMDkyNjMgMTkuMDkyNjQsLTE5LjA5MjYzYzEwLjU0NDU3LDAgMTkuMDkyNjMsOC41NDgwNiAxOS4wOTI2MywxOS4wOTI2M2MwLDEwLjU0NDU3IC04LjU0ODA2LDE5LjA5MjY0IC0xOS4wOTI2MywxOS4wOTI2NGMtMTAuNTQ0NTcsMCAtMTkuMDkyNjQsLTguNTQ4MDcgLTE5LjA5MjY0LC0xOS4wOTI2NHoiCiAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIyIiAvPgogICAgICA8cGF0aAogICAgICAgIGQ9Ik0yNDAsMTgwYzAsMy42MjM0NSAtNC4wNDU4Myw2LjU2MDgzIC05LjAzNjYyLDYuNTYwODNjLTQuOTkwNzgsMCAtOS4wMzY2MSwtMi45MzczOSAtOS4wMzY2MSwtNi41NjA4M2MwLC0zLjYyMzQ1IDQuMDQ1ODMsLTYuNTYwODMgOS4wMzY2MSwtNi41NjA4M2M0Ljk5MDc4LDAgOS4wMzY2MiwyLjkzNzM5IDkuMDM2NjIsNi41NjA4M3oiCiAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiAvPgogICAgICA8cGF0aAogICAgICAgIGQ9Ik0yNTguMDczMjIsMTgwYzAsMy42MjM0NSAtNC4wNDU4Myw2LjU2MDgzIC05LjAzNjYxLDYuNTYwODNjLTQuOTkwNzgsMCAtOS4wMzY2MSwtMi45MzczOSAtOS4wMzY2MSwtNi41NjA4M2MwLC0zLjYyMzQ1IDQuMDQ1ODMsLTYuNTYwODMgOS4wMzY2MSwtNi41NjA4M2M0Ljk5MDc4LDAgOS4wMzY2MSwyLjkzNzM5IDkuMDM2NjEsNi41NjA4M3oiCiAgICAgICAgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiAvPgogICAgICA8cGF0aCBkPSJNMjI2LjM1NzE0LDE1Mi40MzkxN2wzLjg1NzE1LC02LjQyODU3aDE4Ljg1NzE0bDQuNTcxNDMsNi40Mjg1N3oiIGZpbGw9IiM4ODg4ODgiIHN0cm9rZS13aWR0aD0iMCIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPjwhLS1yb3RhdGlvbkNlbnRlcjoyMi40MDc3MDAwMDAwMDAwMDY6MzMuOTg5NDA1MDAwMDAwMDA1LS0+" />
</th>
<th>
<a href="/blog/">Blog </a>
</th>
</tr>
<tr>
<th>
<img
alt=""
class="hamburger_menus-contents-icons"
src="data:image/svg+xml;base64,PHN2ZwogIHZlcnNpb249IjEuMSIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgd2lkdGg9IjU0LjgxODg1IgogIGhlaWdodD0iODEuOTQyMSIKICB2aWV3Qm94PSIwLDAsNTQuODE4ODUsODEuOTQyMSI+CiAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIxMywtMTM5Ljk5OTkpIj4KICAgIDxnCiAgICAgIGRhdGEtcGFwZXItZGF0YT0neyJpc1BhaW50aW5nTGF5ZXIiOnRydWV9JwogICAgICBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgIHN0cm9rZT0ibm9uZSIKICAgICAgc3Ryb2tlLXdpZHRoPSIxIgogICAgICBzdHJva2UtbGluZWNhcD0iYnV0dCIKICAgICAgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIKICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIgogICAgICBzdHJva2UtZGFzaGFycmF5PSIiCiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0PSIwIgogICAgICBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6IG5vcm1hbCI+CiAgICAgIDxwYXRoCiAgICAgICAgZD0iTTI2Ni43OCwxOTkuNDMyYy0zLjIzLDguOTUgLTEyLjAxLDE0LjM5IC0yNi4wOSwxNi4xN2MtMC42NCwwLjA4IC0xLjI3LDAuMTMgLTEuOSwwLjE1Yy0wLjgyLDEuMiAtMS44OSwyLjI0IC0zLjE1LDMuMDVjLTMuMywyLjExIC02LjM5LDMuMTQgLTkuNDQsMy4xNGMtNi4yNywwIC0xMy4wMiwtNC42OCAtMTMuMDIsLTE0Ljk2YzAsLTAuNyAwLjAzLC0xLjYxIDAuMSwtMi44N2MwLjAzLC0wLjU0IDAuMDYsLTAuOTYgMC4wNywtMS4yN2MtMC4xNywtMC43OCAtMC4yNiwtMS41NyAtMC4yNiwtMi4zN3YtNC44NGMwLC0wLjc5IDAuMDgsLTEuNTggMC4yNCwtMi4zN2MwLjAxLC0wLjY3IDAuMDQsLTEuNDIgMC4wOSwtMi4yNGMtMC4yNCwtMC44OCAtMC40MiwtMS45IC0wLjQyLC0zLjA0YzAsLTAuNTIgMC4wNCwtMS4wNCAwLjExLC0xLjU1YzAuMzgsLTIuNjggMS41NywtNS4zNyAzLjU4LC03LjUyYy0wLjY5LC0xLjkzIC0xLjA1LC0zLjk3IC0xLjA1LC02LjA2di01LjFjMCwtMi4wNyAwLjQxLC00LjY1IDIuNDIsLTExLjA3YzAuODQsLTIuNzYgMS4xMSwtMy42MiAxLjQ4LC00LjQyYzEuOTcsLTQuNDIgNC45NCwtNi42MyA3LjEsLTcuNzJjMy41MywtMS43NiA3LjMyLC0yLjY2IDExLjI2LC0yLjY2YzEuODIsMCAzLjU2LDAuMTkgNS4yMiwwLjU1YzAuNzQsLTAuNSAxLjUzLC0wLjkyIDIuMzcsLTEuMjdjMS4wNywtMC40NiAyLjIxLC0wLjc4IDMuNDcsLTAuOThjMy4xNSwtMC41NCA2LjQ4LDAuMTMgOS4zOCwxLjg5YzMuMDUsMS44NiA2LjU1LDUuNzIgNi4xMiwxMy42NmMtMC4wNywxLjQgLTAuMTksMy4yNyAtMC4zNyw1LjcxYy0wLjAxLDAuMDYgLTAuMDEsMC4xMiAtMC4wMiwwLjE4Yy0wLjE2LDEuNzcgLTAuMzksNC40MSAtMC43LDcuOWMwLjA4LDEuMzUgMC4wNSwyLjg2IC0wLjA3LDQuNjRjLTAuMDUsMC42OCAtMC4xNiwxLjM2IC0wLjM0LDIuMDJjLTAuMDQsMC4xNSAtMC4wOCwwLjI5IC0wLjEyLDAuNDJjMS4zNSwxLjczIDIuMjcsMy40NiAyLjksNC45NmMwLjU5LDEuMTkgMS4wOSwyLjU2IDEuNTMsNC4yM2MwLjE3LDAuNjMgMC4yOCwxLjI3IDAuMzMsMS45MmMwLjQ1LDUuNjEgMC4yMiw4LjkyIC0wLjgyLDExLjcyeiIKICAgICAgICBmaWxsPSIjZmZiZDAxIiAvPgogICAgICA8cGF0aAogICAgICAgIGQ9Ik0yNTYuNjM2LDE4OC41OTZjMC4yOTMsMy42MzcgMC4yMzMsNS45ODEgLTAuMTc2LDcuMDM3Yy0xLjcwMiw0LjgwOSAtNy40Miw3LjgyOCAtMTcuMTUyLDkuMDZjLTMuMjg1LDAuNDExIC02LjU2OCwtMS4xNDMgLTkuODUzLC00LjY2MmMwLDAuNTI4IDAuMTE3LDIuMTExIDAuMzUzLDQuNzUxYzAuMTc2LDEuOTM1IDAuMTQ2LDMuNTE4IC0wLjA4OCw0Ljc0OWMtMS40NjcsMC45MzggLTIuNjM5LDEuNDA4IC0zLjUxOSwxLjQwOGMtMS4zNSwwIC0yLjAyMywtMS4zMTkgLTIuMDIzLC0zLjk1OWMwLC0wLjQ2OSAwLjAyOSwtMS4yMTYgMC4wODgsLTIuMjQyYzAuMDU4LC0xLjAyNSAwLjA4OCwtMS43NDQgMC4wODgsLTIuMTU1YzAsLTAuOTk3IC0wLjA4OCwtMS43IC0wLjI2NCwtMi4xMTF2LTQuODM4YzAsLTAuMTE3IDAuMDI5LC0wLjI0OSAwLjA4OCwtMC4zOTZjMC4wNTgsLTAuMTQ2IDAuMTE3LC0wLjI3OCAwLjE3NiwtMC4zOTZjLTAuMDU5LC0wLjgyIC0wLjAzLC0yLjA4MSAwLjA4OCwtMy43ODJjMC4xMTcsLTEuMDU2IDAuMTE3LC0xLjcyOSAwLC0yLjAyM2MtMC4yOTQsLTAuNTg1IC0wLjQzOSwtMC45MzcgLTAuNDM5LC0xLjA1NWMwLjIzMywtMS42NDIgMS40MzcsLTIuNDYzIDMuNjA2LC0yLjQ2M2MxLjQwNywwIDIuMjU3LDAuNDk5IDIuNTUxLDEuNDk1YzAsMC45MzggMC4xMTcsMi4zMTcgMC4zNTIsNC4xMzRjMC4zNTMsMi4xMTEgMS40NjYsNC4yMjMgMy4zNDMsNi4zMzNjMi4wNTIsMi40MDUgNC4wMTYsMy41MTkgNS44OTQsMy4zNDNjMi4xMTEsLTAuMjMzIDQuMjIyLC0wLjczMiA2LjMzMywtMS40OTVjMi45MzIsLTEuMDU2IDQuNjkxLC0yLjI4NyA1LjI3OCwtMy42OTRjMC40MDksLTEuMDU2IDAuNjE1LC0yLjE2OSAwLjYxNSwtMy4zNDNjMCwtMy41NzYgLTEuMzE5LC02LjI0NSAtMy45NTgsLTguMDA0Yy0xLjE3NCwtMC43NjIgLTMuMzQzLC0xLjM3OCAtNi41MSwtMS44NDhjLTEuODE4LC0wLjIzMyAtMi45MzMsLTAuMzUyIC0zLjM0MiwtMC4zNTJjLTIuODE1LDAuMDU5IC01LjQ0LC0wLjg1IC03Ljg3MywtMi43MjdjLTIuNDM0LC0xLjg3NiAtMy42NSwtNC4wNDcgLTMuNjUsLTYuNTF2LTUuMTAxYzAsLTEuMTEzIDAuNjQ1LC0zLjcyMyAxLjkzNiwtNy44MjhjMC41ODUsLTEuOTM2IDAuOTA4LC0yLjk2MSAwLjk2OCwtMy4wNzljMC41MjcsLTEuMjMxIDEuMjAxLC0yLjA1MiAyLjAyMiwtMi40NjNjMS45OTMsLTAuOTk2IDQuMTA0LC0xLjQ5NSA2LjMzMywtMS40OTVjNC4zMzksMCA3LjUzNSwxLjc1OSA5LjU4OCw1LjI3N2MwLjE3NiwwLjE3NiAwLjQ2OSwwLjQ0IDAuODgsMC43OTJjMC4wNTgsLTAuODIgMC4xNzYsLTIuMDgxIDAuMzUyLC0zLjc4MmMtMC4wNTksLTAuNzYyIC0wLjExOCwtMS40OTUgLTAuMTc2LC0yLjE5OWMwLC0wLjgyIDAuNDA5LC0xLjM3NyAxLjIzMSwtMS42NzFjMC4yMzQsLTAuMTE3IDAuNTU3LC0wLjIwNSAwLjk2OCwtMC4yNjRjMC41ODYsLTAuMTE3IDEuMjE3LDAuMDMgMS44OTIsMC40MzljMC42NzMsMC40MTEgMC45NTIsMS42NDMgMC44MzUsMy42OTRjLTAuMDU5LDEuMjkgLTAuMTc2LDMuMTA4IC0wLjM1Miw1LjQ1M2MtMC4xNzYsMS45MzYgLTAuNDM5LDQuODk3IC0wLjc5Miw4Ljg4NWMwLjExNywwLjkzOCAwLjExNywyLjIyOSAwLDMuODdjLTAuMjk0LDEuMTE0IC0xLjE3NCwxLjY3MSAtMi42MzksMS42NzFjLTAuNzYzLDAgLTEuNDk1LC0wLjIwNSAtMi4xOTksLTAuNjE1Yy0wLjM1MiwtMS4xMTMgLTAuNTI3LC0xLjU4NCAtMC41MjcsLTEuNDA4YzAuMTE2LC0xLjU4MyAtMC4yMDYsLTMuNjk0IC0wLjk2OCwtNi4zMzNjLTAuNjQ2LC0xLjM0OCAtMS41MzksLTMuMjY4IC0yLjY4MywtNS43NjFjLTEuMTQ0LC0yLjQ5MiAtMi42NTQsLTMuODI3IC00LjUzLC00LjAwM2MtMi4zNDYsLTAuMTc2IC0zLjg3LDAuNjE2IC00LjU3NCwyLjM3NWMtMC4yMzQsMC43NjMgLTAuNTU4LDEuODc4IC0wLjk2NywzLjM0M2MtMC43MDQsMi4xNyAtMS4xNDQsNC4yNTIgLTEuMzIsNi4yNDVjLTAuMDU5LDAuNjQ2IC0wLjExOCwwLjkxIC0wLjE3NiwwLjc5MmMwLjE3NiwxLjE3NCAwLjM4MSwyLjM0NiAwLjYxNiwzLjUxOWMwLjI5MywxLjQ2NiAxLjAxMiwyLjU4MSAyLjE1NSwzLjM0MmMxLjE0NCwwLjc2MyAzLjMyNywxLjIzMSA2LjU1MywxLjQwN2M3LjkxNiwwLjQ3MSAxMi44MTIsMy4yMjcgMTQuNjg5LDguMjY5YzAuMjkyLDAuNDcgMC41ODUsMS4yNjEgMC44NzksMi4zNzR6IgogICAgICAgIGZpbGw9IiM4NTVjZDYiIC8+CiAgICA8L2c+CiAgPC9nPjwvc3ZnCj48IS0tcm90YXRpb25DZW50ZXI6Mjc6NDAuMDAwMDk5Njk3NzA1NTQtLT4K" />
</th>
<th>
<a href="https://scratch.mit.edu/users/The_Infinitys">Scratch </a>
</th>
</tr>
<tr>
<th>
<img
alt=""
class="hamburger_menus-contents-icons"
src="data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiPgogIDxwYXRoCiAgICBmaWxsPSIjODg4ODg4IgogICAgZD0iTTEyIDBjLTYuNjI2IDAtMTIgNS4zNzMtMTIgMTIgMCA1LjMwMiAzLjQzOCA5LjggOC4yMDcgMTEuMzg3LjU5OS4xMTEuNzkzLS4yNjEuNzkzLS41Nzd2LTIuMjM0Yy0zLjMzOC43MjYtNC4wMzMtMS40MTYtNC4wMzMtMS40MTYtLjU0Ni0xLjM4Ny0xLjMzMy0xLjc1Ni0xLjMzMy0xLjc1Ni0xLjA4OS0uNzQ1LjA4My0uNzI5LjA4My0uNzI5IDEuMjA1LjA4NCAxLjgzOSAxLjIzNyAxLjgzOSAxLjIzNyAxLjA3IDEuODM0IDIuODA3IDEuMzA0IDMuNDkyLjk5Ny4xMDctLjc3NS40MTgtMS4zMDUuNzYyLTEuNjA0LTIuNjY1LS4zMDUtNS40NjctMS4zMzQtNS40NjctNS45MzEgMC0xLjMxMS40NjktMi4zODEgMS4yMzYtMy4yMjEtLjEyNC0uMzAzLS41MzUtMS41MjQuMTE3LTMuMTc2IDAgMCAxLjAwOC0uMzIyIDMuMzAxIDEuMjMuOTU3LS4yNjYgMS45ODMtLjM5OSAzLjAwMy0uNDA0IDEuMDIuMDA1IDIuMDQ3LjEzOCAzLjAwNi40MDQgMi4yOTEtMS41NTIgMy4yOTctMS4yMyAzLjI5Ny0xLjIzLjY1MyAxLjY1My4yNDIgMi44NzQuMTE4IDMuMTc2Ljc3Ljg0IDEuMjM1IDEuOTExIDEuMjM1IDMuMjIxIDAgNC42MDktMi44MDcgNS42MjQtNS40NzkgNS45MjEuNDMuMzcyLjgyMyAxLjEwMi44MjMgMi4yMjJ2My4yOTNjMCAuMzE5LjE5Mi42OTQuODAxLjU3NiA0Ljc2NS0xLjU4OSA4LjE5OS02LjA4NiA4LjE5OS0xMS4zODYgMC02LjYyNy01LjM3My0xMi0xMi0xMnoiIC8+Cjwvc3ZnPgo=" />
</th>
<th>
<a href="https://github.com/The-Infinitys">GitHub </a>
</th>
</tr>
<tr>
<th>
<img
alt=""
class="hamburger_menus-contents-icons"
src="data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjIyNjAiIHdpZHRoPSIyNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAuMjU0IDAuMjUgNTAwIDQ1MS45NTQwMDAwMDAwMDAwNiI+PHBhdGggZD0iTTM5NC4wMzMuMjVoNzYuNjdMMzAzLjIwMiAxOTEuNjkzbDE5Ny4wNTIgMjYwLjUxMWgtMTU0LjI5TDIyNS4xMTggMjk0LjIwNSA4Ni44NDQgNDUyLjIwNEgxMC4xMjdsMTc5LjE2LTIwNC43N0wuMjU0LjI1SDE1OC40NmwxMDkuMjM0IDE0NC40MTd6bS0yNi45MDggNDA2LjA2M2g0Mi40ODNMMTM1LjM3NyA0My43M2gtNDUuNTl6IiBmaWxsPSIjODg4Ii8+PC9zdmc+Cg==" />
</th>
<th>
<a href="https://x.com/Mugen_Infinitys/">X </a>
</th>
</tr>
</table>
`;
const header = document.createElement("header");
header.style = `
animation-name: show;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: initial;
`;
header.innerHTML = header_text;
document.body.prepend(header);
};
const init_footer = function () {
//headerの初期化
const footer_text = `
<div>
<div>
<p><a href="/contact/">Contact to The Infinity's</a></p>
<p><a href="/blog/">Watch The Infinity's Blog</a></p>
<p><a href="https://scratch.mit.edu/users/The_Infinitys/">Go to Scratch profile</a></p>
<p><a href="https://github.com/The_Infinitys/">Go to GitHub profile</a></p>
</div>
</div>
<h1>© 2024 The Infinity's</h1>
`;
const footer = document.createElement("footer");
footer.style = `
animation-name: show;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: initial;
`;
footer.innerHTML = footer_text;
document.body.append(footer);
};
const generate_Infinitys = function () {
const The_Infinitys = (size, quality) => {
const hsvToRgb16 = function (hue, saturation, value) {
var result = false;
if (
(saturation || saturation === 0) &&
saturation <= 100 &&
(value || value === 0) &&
value <= 100
) {
var red = 0,
green = 0,
blue = 0,
i = 0,
f = 0,
q = 0,
p = 0,
t = 0;
hue = Number(hue % 360) / 60;
saturation = Number(saturation) / 100;
value = Number(value) / 100;
if (saturation === 0) {
red = value;
green = value;
blue = value;
} else {
i = Math.floor(hue);
f = hue - i;
p = value * (1 - saturation);
q = value * (1 - saturation * f);
t = value * (1 - saturation * (1 - f));
switch (i) {
case 0:
red = value;
green = t;
blue = p;
break;
case 1:
red = q;
green = value;
blue = p;
break;
case 2:
red = p;
green = value;
blue = t;
break;
case 3:
red = p;
green = q;
blue = value;
break;
case 4:
red = t;
green = p;
blue = value;
break;
case 5:
red = value;
green = p;
blue = q;
break;
}
}
result = {
red: Math.round(red * 255).toString(),
green: Math.round(green * 255).toString(),
blue: Math.round(blue * 255).toString(),
};
}
return "rgb(" + result.red + "," + result.green + "," + result.blue + ")";
};
const inf = (t) => {
if (t < 0 || 720 < t) {
return inf(t % 720);
}
const r = t * (Math.PI / 180);
if (t < 360) {
return {
x: 100 * (Math.cos(r) - 1),
y: Math.sin(r) * 80,
};
} else {
return {
x: -100 * (Math.cos(r) - 1),
y: Math.sin(r) * 80,
};
}
};
const circle = (t) => {
if (t < 0 || 360 < t) {
return circle(t % 360);
}
const r = t * (Math.PI / 180);
return {
x: Math.cos(r),
y: Math.sin(r),
};
};
const canvas = document.createElement("canvas");
canvas.width = size;
canvas.height = size;
const graphics = canvas.getContext("2d");
graphics.clearRect(0, 0, canvas.width, canvas.height);
let before_data = inf(0);
graphics.lineWidth = canvas.width / 57;
for (let i = 0; i <= 720; i += quality) {
const data = inf(i);
graphics.beginPath();
graphics.moveTo(
(before_data.x * canvas.width) / 500 + canvas.width / 2,
(before_data.y * canvas.height) / 500 + canvas.height / 2
);
graphics.lineTo(
(data.x * canvas.width) / 500 + canvas.width / 2,
(data.y * canvas.height) / 500 + canvas.height / 2
);
graphics.closePath();
graphics.strokeStyle = hsvToRgb16(((data.x + 200) / 400) * 360, 100, 100);
graphics.stroke();
before_data = data;
}
before_data = circle(0);
graphics.lineWidth = canvas.width / 777;
for (let count = 0; count < 777; count += quality * 10) {
for (let t = 0; t <= 360; t += quality) {
let data = circle(t);
data.x *= 1 - count / 7777;
data.y *= 1 - count / 7777;
graphics.beginPath();
graphics.moveTo(
(before_data.x * canvas.width) / 2.22 + canvas.width / 2,
(before_data.y * canvas.height) / 2.22 + canvas.height / 2
);
graphics.lineTo(
(data.x * canvas.width) / 2.22 + canvas.width / 2,
(data.y * canvas.height) / 2.22 + canvas.height / 2
);
graphics.closePath();
graphics.strokeStyle = hsvToRgb16(
(t + 360 + count / 7.7) % 360,
100,
100
);
graphics.stroke();
before_data = data;
}
}
return canvas.toDataURL("image/webp", 1);
};
const elems = document.getElementsByClassName("The-Infinitys");
for (let i = 0; i < elems.length; ++i) {
elems[i].src = The_Infinitys(400, 2);
}
};
//ハンバーガーメニューの設定
let is_opened_hamburgerMenu = false;
function hamburger_menu() {
is_opened_hamburgerMenu = !is_opened_hamburgerMenu;
const menu = document.querySelector("#hamburger_menus");
const open_button = document.querySelector("#open_hamburger_menu");
const close_button = document.querySelector("#close_hamburger_menu");
if (is_opened_hamburgerMenu) {
//open the menu
open_button.classList.remove("hamburger_menu_icon_show");
open_button.classList.add("hamburger_menu_icon_hide");
close_button.classList.remove("hamburger_menu_icon_hide");
close_button.classList.add("hamburger_menu_icon_show");
menu.classList.add("hamburger-open");
menu.classList.remove("hamburger-close");
open_button.style.opacity = "0";
close_button.style.opacity = "1";
menu.style.left = "calc(100vw - var(--hamburger-width))";
menu.style.opacity = "1";
} else {
//close the menu
open_button.classList.add("hamburger_menu_icon_show");
open_button.classList.remove("hamburger_menu_icon_hide");
close_button.classList.add("hamburger_menu_icon_hide");
close_button.classList.remove("hamburger_menu_icon_show");
menu.classList.add("hamburger-close");
menu.classList.remove("hamburger-open");
open_button.style.opacity = "1";
close_button.style.opacity = "0";
menu.style.left = "100vw";
menu.style.opacity = "0";
}
}
const generate_honeycomb = (mode = "honeycomb") => {
//ダークモード・ライトモード対応
const root3 = 1.7320508;
const RainbowHoneycomb = document.createElement("canvas");
RainbowHoneycomb.id = "RainbowHoneycomb";
RainbowHoneycomb.style = `
position:fixed;
width:100vw;
height:100vh;
top:0;
left:0;
z-index:-100;
animation-name: show;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: initial;
`;
document.body.append(RainbowHoneycomb);
const draw = RainbowHoneycomb.getContext("2d");
const rainbow_svg = document.createElement("div");
rainbow_svg.id = "rainbow-back";
document.body.append(rainbow_svg);
const honeycomb = (x, y, r, color, mode) => {
if (mode == "honeycomb") {
draw.fillStyle = color;
draw.beginPath();
draw.moveTo(x, y - r);
draw.lineTo(x + (root3 / 2) * r, y - r / 2);
draw.lineTo(x + (root3 / 2) * r, y + r / 2);
draw.lineTo(x, y + r);
draw.lineTo(x - (root3 / 2) * r, y + r / 2);
draw.lineTo(x - (root3 / 2) * r, y - r / 2);
draw.fill();
} else {
draw.strokeStyle = "#ff0";
draw.lineWidth = 1;
draw.globalCompositeOperation = "destination-out";
draw.beginPath();
draw.arc(x, y, r, 0, 2 * Math.PI, true);
draw.closePath();
draw.stroke();
draw.globalCompositeOperation = "source-over";
}
};
const radius = 50;
const radius_percent = 1.12;
// const hsvToRgb16 = function (hue, saturation, value) {
// var result = false;
// if (
// (saturation || saturation === 0) &&
// saturation <= 100 &&
// (value || value === 0) &&
// value <= 100
// ) {
// var red = 0,
// green = 0,
// blue = 0,
// i = 0,
// f = 0,
// q = 0,
// p = 0,
// t = 0;
// hue = Number(hue % 360) / 60;
// saturation = Number(saturation) / 100;
// value = Number(value) / 100;
// if (saturation === 0) {
// red = value;
// green = value;
// blue = value;
// } else {
// i = Math.floor(hue);
// f = hue - i;
// p = value * (1 - saturation);
// q = value * (1 - saturation * f);
// t = value * (1 - saturation * (1 - f));
// switch (i) {
// case 0:
// red = value;
// green = t;
// blue = p;
// break;
// case 1:
// red = q;
// green = value;
// blue = p;
// break;
// case 2:
// red = p;
// green = value;
// blue = t;
// break;
// case 3:
// red = p;
// green = q;
// blue = value;
// break;
// case 4:
// red = t;
// green = p;
// blue = value;
// break;
// case 5:
// red = value;
// green = p;
// blue = q;
// break;
// }
// }
// result = {
// red: Math.round(red * 255).toString(),
// green: Math.round(green * 255).toString(),
// blue: Math.round(blue * 255).toString(),
// };
// }
// return "rgb(" + result.red + "," + result.green + "," + result.blue + ")";
// };
const drawhoneycomb = (color) => {
draw.clearRect(0, 0, RainbowHoneycomb.width, RainbowHoneycomb.height);
if ((mode = "jp-spirit")) {
draw.fillStyle = color;
draw.fillRect(0, 0, RainbowHoneycomb.width, RainbowHoneycomb.height);
}
for (let i = 0; i < Math.round(RainbowHoneycomb.width / radius) + 2; ++i) {
for (
let j = 0;
j < Math.round(RainbowHoneycomb.height / radius) + 2;
++j
) {
honeycomb(
radius * 2 * i + (j % 2) * radius,
((radius * 2 * root3) / 2) * j,
radius * radius_percent,
color,
mode
);
}
}
};
const renewHoneycombCanvas = () => {
RainbowHoneycomb.width = window.innerWidth * window.devicePixelRatio;
RainbowHoneycomb.height = window.innerHeight * window.devicePixelRatio;
if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
drawhoneycomb("#000");
} else {
drawhoneycomb("#fff");
}
};
renewHoneycombCanvas();
window.onresize = renewHoneycombCanvas;
const mediaQueryList = window.matchMedia("(prefers-color-scheme: dark)");
// 最初の判定
if (mediaQueryList.matches) {
console.log("dark-mode is enabled.");
} else {
console.log("light-mode is enabled");
}
// メディアクエリの変化を監視するリスナー関数を定義
const listener_honeycomb = function (event) {
if (event.matches) {
console.log("swaped to dark-mode");
} else {
console.log("swaped to light-mode");
}
renewHoneycombCanvas();
};
mediaQueryList.addEventListener("change", listener_honeycomb);
};
const generate_style = () => {
const dark_back = document.createElement("img");
dark_back.src =
"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIzNjAiIGhlaWdodD0iMzYwIiB2aWV3Qm94PSIwLDAsMzYwLDM2MCI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTYwLDApIj48ZyBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpc1BhaW50aW5nTGF5ZXImcXVvdDs6dHJ1ZX0iIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjAiIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9IiIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsIj48cGF0aCBkPSJNNjAsMzYwdi0zNjBoMzYwdjM2MHoiIGZpbGw9IiMwMDAwMDAiLz48cGF0aCBkPSJNNjAsMTgwdi0xODBoMTgweiIgZmlsbD0iIzI3MjcyNyIvPjxwYXRoIGQ9Ik02MCw5MHYtOTBoMTgweiIgZmlsbD0iIzg4ODg4OCIvPjxwYXRoIGQ9Ik00MjAsMTgwdjE4MGgtMTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiMyNzI3MjciLz48cGF0aCBkPSJNNDIwLDI3MHY5MGgtMTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiM4ODg4ODgiLz48cGF0aCBkPSJNMjQwLDBsMTgwLDB2MTgweiIgZmlsbD0iIzI3MjcyNyIvPjxwYXRoIGQ9Ik0zMzAsMGw5MCwwdjE4MHoiIGZpbGw9IiM4ODg4ODgiLz48cGF0aCBkPSJNMjQwLDM2MGwtMTgwLDBsMCwtMTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiMyNzI3MjciLz48cGF0aCBkPSJNMTUwLDM2MGgtOTBsMCwtMTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiM4ODg4ODgiLz48L2c+PC9nPjwvc3ZnPjwhLS1yb3RhdGlvbkNlbnRlcjoxODA6MTgwLS0+";
dark_back.id = "dark-mobile";
dark_back.alt = "";
dark_back.style = `
position:fixed;
width:100vw;
height:100vh;
top:0;
left:0;
z-index:-1000;
`;
document.body.append(dark_back);
const light_back = document.createElement("img");
light_back.src =
"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzYwIiBoZWlnaHQ9IjM2MCIgdmlld0JveD0iMCwwLDM2MCwzNjAiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02MCwwKSI+PGcgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aXNQYWludGluZ0xheWVyJnF1b3Q7OnRydWV9IiBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIwIiBzdHJva2UtbGluZWNhcD0iYnV0dCIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIiIHN0cm9rZS1kYXNob2Zmc2V0PSIwIiBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6IG5vcm1hbCI+PHBhdGggZD0iTTYwLDM2MHYtMzYwaDM2MHYzNjB6IiBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpbmRleCZxdW90OzpudWxsfSIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0yNDAsMGgxODB2MTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiNjM2MzYzMiLz48cGF0aCBkPSJNMjQwLDBoMTgwdjkweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiM4ODg4ODgiLz48cGF0aCBkPSJNMjQwLDM2MGgtMTgwdi0xODB6IiBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpbmRleCZxdW90OzpudWxsfSIgZmlsbD0iI2MzYzNjMyIvPjxwYXRoIGQ9Ik0yNDAsMzYwaC0xODB2LTkweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiM4ODg4ODgiLz48cGF0aCBkPSJNNjAsMTgwdi0xODBoMTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiNjM2MzYzMiLz48cGF0aCBkPSJNNjAsMTgwdi0xODBoOTB6IiBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpbmRleCZxdW90OzpudWxsfSIgZmlsbD0iIzg4ODg4OCIvPjxwYXRoIGQ9Ik00MjAsMTgwdjE4MGgtMTgweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiNjM2MzYzMiLz48cGF0aCBkPSJNNDIwLDE4MHYxODBoLTkweiIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iIGZpbGw9IiM4ODg4ODgiLz48L2c+PC9nPjwvc3ZnPjwhLS1yb3RhdGlvbkNlbnRlcjoxODA6MTgwLS0+";
light_back.id = "light-mobile";
light_back.alt = "";
light_back.style = `
position:fixed;
width:100vw;
height:100vh;
top:0;
left:0;
z-index:-999;
`;
document.body.append(light_back);
const center_inf = document.createElement("img");
center_inf.src =
"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIxNzQiIGhlaWdodD0iMTc0IiB2aWV3Qm94PSIwLDAsMTc0LDE3NCI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE1MywtOTMpIj48ZyBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpc1BhaW50aW5nTGF5ZXImcXVvdDs6dHJ1ZX0iIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSIjNzc3Nzc3IiBzdHJva2UtbGluZWNhcD0iYnV0dCIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIiIHN0cm9rZS1kYXNob2Zmc2V0PSIwIiBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6IG5vcm1hbCI+PHBhdGggZD0iTTE1NSwxODBjMCwtMTguNzc3NjggMTkuMDI3OSwtMzQgNDIuNSwtMzRjMjMuNDcyMTEsMCA0Mi41LDE1LjIyMjMyIDQyLjUsMzRjMCwxOC43Nzc2OCAtMTkuMDI3ODksMzQgLTQyLjUsMzRjLTIzLjQ3MjEsMCAtNDIuNSwtMTUuMjIyMzIgLTQyLjUsLTM0eiIgc3Ryb2tlLXdpZHRoPSIyIi8+PHBhdGggZD0iTTI0MCwxODBjMCwtMTguNzc3NjggMTkuMDI3OSwtMzQgNDIuNSwtMzRjMjMuNDcyMTEsMCA0Mi41LDE1LjIyMjMyIDQyLjUsMzRjMCwxOC43Nzc2OCAtMTkuMDI3ODksMzQgLTQyLjUsMzRjLTIzLjQ3MjEsMCAtNDIuNSwtMTUuMjIyMzIgLTQyLjUsLTM0eiIgc3Ryb2tlLXdpZHRoPSIyIi8+PHBhdGggZD0iTTE1NSwxODBjMCwtNDYuOTQ0MiAzOC4wNTU4LC04NSA4NSwtODVjNDYuOTQ0MiwwIDg1LDM4LjA1NTggODUsODVjMCw0Ni45NDQyIC0zOC4wNTU4LDg1IC04NSw4NWMtNDYuOTQ0MiwwIC04NSwtMzguMDU1OCAtODUsLTg1eiIgc3Ryb2tlLXdpZHRoPSI0Ii8+PC9nPjwvZz48L3N2Zz48IS0tcm90YXRpb25DZW50ZXI6ODc6ODctLT4=";
center_inf.alt = "";
center_inf.style = `
position:fixed;
width:50vw;
height:50vw;
transform: translate(-50%,-50%);
top:50vh;
left:50vw;
z-index:-100;
animation-name: show;
animation-duration: 2s;
animation-timing-function: linear;
animation-iteration-count: initial;
`;
document.body.append(center_inf);
};
const is_phone = () => {
const ua = navigator.userAgent;
if (ua.indexOf("iPhone") >= 0) {
return true;
}
if (ua.indexOf("iPad") >= 0) {
return true;
}
if (ua.indexOf("Android") >= 0) {
return true;
}
return false;
};
const The_Infinitys_main = () => {
init_header();
init_footer();
if (Math.random() < 0.1) {
generate_style();
} else if (Math.random() < 0.5) {
generate_honeycomb((mode = "honeycomb"));
} else {
generate_honeycomb((mode = "jp-spirit"));
}
};
The_Infinitys_main();
どこが変わったのか
私はJavaScriptでページを作るときに関数をfunctionではなく、()=>{}で定義するのですが…
const honeycomb = (x, y, r, color, mode) => {
if (mode == "honeycomb") {
draw.fillStyle = color;
draw.beginPath();
draw.moveTo(x, y - r);
draw.lineTo(x + (root3 / 2) * r, y - r / 2);
draw.lineTo(x + (root3 / 2) * r, y + r / 2);
draw.lineTo(x, y + r);
draw.lineTo(x - (root3 / 2) * r, y + r / 2);
draw.lineTo(x - (root3 / 2) * r, y - r / 2);
draw.fill();
} else {
draw.strokeStyle = "#ffff";
draw.lineWidth = 1;
draw.globalCompositeOperation = "destination-out";
draw.beginPath();
draw.arc(x, y, r, 0, 2 * Math.PI, true);
draw.closePath();
draw.stroke();
draw.globalCompositeOperation = "source-over";
}
};
この関数をみてください。
この関数が、ページの六角形の部分を書いていた関数なのですが、そこの部分に手を加えて、
draw.strokeStyle = "#ffff";
draw.lineWidth = 1;
draw.globalCompositeOperation = "destination-out";
draw.beginPath();
draw.arc(x, y, r, 0, 2 * Math.PI, true);
draw.closePath();
draw.stroke();
draw.globalCompositeOperation = "source-over";
円を繰り抜く事ができるようにしました。
はい。
いつの間にサイレントアプデ
実は最近ページをサイレントアップデートしていて、その影響で、画像を一切読み込まなくともトップページが正常に表示されるようになりました。^o^
⭐️キツかった⭐️