Skip to content

Commit 3afaacf

Browse files
save file
1 parent 58e23fe commit 3afaacf

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
2+
3+
<meta name=viewport content='width=device-width, initial-scale=1'>
4+
5+
<style>
6+
7+
html
8+
{font-family:arial}
9+
10+
#side
11+
{position:fixed;top:0;height:100%;left:0}
12+
#nav
13+
{position:absolute;left:-210px;top:0;bottom:0;background:linear-gradient(180deg,#004E89 0%,#1A7FA0 100%);width:200px;padding:10px;
14+
box-sizing:border-box;overflow:auto;transition:all 1s}
15+
#nav.active
16+
{left:0;opacity:1}
17+
ul
18+
{list-style:none}
19+
li
20+
{margin:10px}
21+
li::before
22+
{content:"★";color:gold;margin-right:8px;}
23+
#overlay
24+
{position:fixed;left:0;top:0;width:100%;height:100%;background:black;opacity:0;z-index:-1;transition:all 1s;visibility:hidden}
25+
#overlay.active
26+
{opacity:0.5;visibility:visible}
27+
.menu
28+
{--s:100px;--c:black;height:var(--s);aspect-ratio:1;border:none;padding:0;border-inline:calc(var(--s)/2) solid #0000;box-sizing:content-box;--_g1:linear-gradient(var(--c) 20%,#0000 0 80%,var(--c) 0) no-repeat content-box border-box;--_g2:radial-gradient(circle closest-side at 50% 12.5%,var(--c) 95%,#0000) repeat-y content-box border-box;background:var(--_g2) left var(--_p,0) top,var(--_g1) left calc(var(--s)/ 10 + var(--_p,0px)) top,var(--_g2) right var(--_p,0) top,var(--_g1) right calc(var(--s)/ 10 + var(--_p,0px)) top;background-size:20% 80%,40% 100%;position:relative;clip-path:inset(0 25%);-webkit-mask:linear-gradient(90deg,#0000,#000 25% 75%,#0000);cursor:pointer;transition:background-position .3s var(--_s,.3s),clip-path 0s var(--_s,.6s);-webkit-appearance:none;-moz-appearance:none;appearance:none}.menu:after,.menu:before{content:"";position:absolute;border-radius:var(--s);inset:40% 0;background:var(--c);transition:transform .3s calc(.3s - var(--_s,.3s))}.menu:checked{clip-path:inset(0);--_p:calc(-1*var(--s));--_s:0s}.menu:checked:before{transform:rotate(45deg)}.menu:checked:after{transform:rotate(-45deg)}.menu:focus-visible{clip-path:none;-webkit-mask:none;border:none;outline:2px solid var(--c);outline-offset:5px}
29+
.menu
30+
{width:20px;height:20px;position:absolute;left:-30px;top:10px;transition:all 1s;z-index:1}
31+
.menu.active
32+
{left:165px}
33+
34+
a,a:visited,a:hover
35+
{color:white;font-weight:bold}
36+
37+
</style>
38+
39+
40+
<div id=side>
41+
42+
<div id=nav>
43+
44+
<a href="#">
45+
<div>ToolPier</div>
46+
</a>
47+
48+
<hr>
49+
50+
<ul>
51+
52+
<li>
53+
<a href="#">Tool 1</a>
54+
</li>
55+
56+
</ul>
57+
58+
</div>
59+
60+
<input type="checkbox" role="button" aria-label="Display the menu" class="menu">
61+
62+
</div>
63+
64+
<div id=overlay></div>
65+
66+
67+
<script>
68+
console.clear();
69+
var $ = (root,sel)=>(!sel && (sel=root,root=document),root.querySelector(sel));
70+
71+
var side = $('#side');
72+
var nav = $('#nav');
73+
var ul = $('ul');
74+
var li = $('li');
75+
var menu = $('.menu');
76+
var overlay = $('#overlay');
77+
78+
for(var i=0;i<100;i++){
79+
80+
var nli = li.cloneNode(true);
81+
$(nli,'a').textContent = `tool ${i}`;
82+
ul.append(nli);
83+
84+
}//for
85+
86+
menu.onclick = update;
87+
overlay.onclick = update;
88+
89+
function update(){
90+
91+
if(menu.classList.contains('active')){
92+
menu.checked = false;
93+
nav.classList.remove('active');
94+
overlay.classList.remove('active');
95+
menu.classList.remove('active');
96+
}else{
97+
menu.checked = true;
98+
nav.classList.add('active');
99+
overlay.classList.add('active');
100+
menu.classList.add('active');
101+
}
102+
103+
}//update
104+
105+
106+
</script>
107+

0 commit comments

Comments
 (0)