File tree 3 files changed +118
-0
lines changed
3 files changed +118
-0
lines changed Original file line number Diff line number Diff line change
1
+
2
+ < p > 🎈</ p >
3
+
4
+ < script >
5
+ let p = document . querySelector ( "p" ) ;
6
+ let size ;
7
+ function setSize ( newSize ) {
8
+ size = newSize ;
9
+ p . style . fontSize = size + "px" ;
10
+ }
11
+ setSize ( 20 ) ;
12
+
13
+ function arrowKey ( e ) {
14
+ if ( e . key == "ArrowUp" ) {
15
+ if ( size > 70 ) {
16
+ p . textContent = "💥" ;
17
+ document . body . removeEventListener ( "keydown" , arrowKey ) ;
18
+ } else {
19
+ setSize ( size * 1.1 ) ;
20
+ e . preventDefault ( ) ;
21
+ }
22
+ } else if ( e . key == "ArrowDown" ) {
23
+ setSize ( size * 0.9 ) ;
24
+ e . preventDefault ( ) ;
25
+ }
26
+ }
27
+ document . body . addEventListener ( "keydown" , arrowKey ) ;
28
+ </ script >
Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html lang ="en ">
3
+ < head >
4
+ < meta charset ="UTF-8 ">
5
+ < meta http-equiv ="X-UA-Compatible " content ="IE=edge ">
6
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
7
+ < title > Document</ title >
8
+ </ head >
9
+ < body >
10
+ <!doctype html>
11
+
12
+ < style >
13
+ .trail { /* className for the trail elements */
14
+ position : absolute;
15
+ height : 6px ; width : 6px ;
16
+ border-radius : 3px ;
17
+ background : orange;
18
+ }
19
+ body {
20
+ height : 500px ;
21
+ }
22
+ </ style >
23
+
24
+ < script >
25
+ let dots = [ ] ;
26
+ for ( let i = 0 ; i < 12 ; i ++ ) {
27
+ let node = document . createElement ( "div" ) ;
28
+ node . className = "trail" ;
29
+ document . body . appendChild ( node ) ;
30
+ dots . push ( node ) ;
31
+ }
32
+
33
+ let currentDot = 0 ;
34
+
35
+ window . addEventListener ( "mousemove" , event => {
36
+ let dot = dots [ currentDot ] ;
37
+ dot . style . left = ( event . pageX - 3 ) + "px" ;
38
+ dot . style . top = ( event . pageY - 3 ) + "px" ;
39
+ currentDot = ( currentDot + 1 ) % dots . length ;
40
+ } ) ;
41
+ </ script >
42
+ </ body >
43
+ </ html >
Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html lang ="en ">
3
+
4
+ < head >
5
+ < meta charset ="UTF-8 ">
6
+ < meta http-equiv ="X-UA-Compatible " content ="IE=edge ">
7
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
8
+ < title > Document</ title >
9
+ </ head >
10
+
11
+ < body >
12
+
13
+ < tab-panel >
14
+ < div data-tabname ="one "> Tab one</ div >
15
+ < div data-tabname ="two "> Tab two</ div >
16
+ < div data-tabname ="three "> Tab three</ div >
17
+ </ tab-panel >
18
+ < script >
19
+ function asTabs ( node ) {
20
+ let tabs = Array . from ( node . children ) . map ( node => {
21
+ let button = document . createElement ( "button" ) ;
22
+ button . textContent = node . getAttribute ( "data-tabname" ) ;
23
+ let tab = { node, button } ;
24
+ button . addEventListener ( "click" , ( ) => selectTab ( tab ) ) ;
25
+ return tab ;
26
+ } ) ;
27
+
28
+ let tabList = document . createElement ( "div" ) ;
29
+ for ( let { button } of tabs ) tabList . appendChild ( button ) ;
30
+ node . insertBefore ( tabList , node . firstChild ) ;
31
+
32
+ function selectTab ( selectedTab ) {
33
+ for ( let tab of tabs ) {
34
+ let selected = tab == selectedTab ;
35
+ tab . node . style . display = selected ? "" : "none" ;
36
+ tab . button . style . color = selected ? "red" : "" ;
37
+ }
38
+ }
39
+ selectTab ( tabs [ 0 ] ) ;
40
+ }
41
+
42
+ asTabs ( document . querySelector ( "tab-panel" ) ) ;
43
+ </ script >
44
+
45
+ </ body >
46
+
47
+ </ html >
You can’t perform that action at this time.
0 commit comments