1- document . querySelectorAll ( '.button[href]' ) . forEach ( button => button . addEventListener ( 'click' , function ( event ) {
1+ document . querySelectorAll ( '.button[href]' ) . forEach ( button => button . addEventListener ( 'click' , function ( event ) {
22 event . preventDefault ( ) ;
33 anim_out ( ) ;
44 setTimeout ( ( ) => {
@@ -16,9 +16,129 @@ function anim_out() {
1616 document . querySelector ( 'main' ) . classList . add ( 'out' ) ;
1717} ;
1818
19- document . onload = anim_in ( ) ;
19+ window . onload = function ( ) {
20+ anim_in ( ) ;
21+ document . querySelectorAll ( '.inputField' ) . forEach ( field => {
22+ field . querySelectorAll ( 'input, textarea' ) . forEach ( input => {
23+ if ( localStorage . getItem ( field . id ) ) {
24+ input . value = localStorage . getItem ( field . id ) ;
25+ document . querySelector ( '.fixed2' ) . classList . add ( 'visible' ) ;
26+ setTimeout ( ( ) => {
27+ document . querySelector ( '.fixed2' ) . classList . remove ( 'visible' ) ;
28+ } , 2000 ) ;
29+ } ;
30+ } ) ;
31+ field . querySelectorAll ( '.checkbox' ) . forEach ( checkbox => {
32+ if ( localStorage . getItem ( field . id ) === 'true' ) {
33+ checkbox . classList . add ( 'checked' ) ;
34+ const input = field . querySelector ( 'input[type="checkbox"]' ) ;
35+ input . checked = true ;
36+ document . querySelector ( '.fixed2' ) . classList . add ( 'visible' ) ;
37+ setTimeout ( ( ) => {
38+ document . querySelector ( '.fixed2' ) . classList . remove ( 'visible' ) ;
39+ } , 2000 ) ;
40+ } ;
41+ } ) ;
42+ } ) ;
43+ } ;
2044
2145// anim_out();
2246// setTimeout(() => {
2347// anim_in();
24- // }, 750)
48+ // }, 750)
49+
50+ var step = 0 ;
51+
52+ function start ( ) {
53+ next ( ) ;
54+ document . getElementById ( 'start' ) . classList . add ( 'hidden' ) ;
55+ document . getElementById ( 'next' ) . classList . remove ( 'hidden' ) ;
56+ } ;
57+
58+ function next ( ) {
59+ if ( step < document . querySelectorAll ( '.inputField' ) . length ) {
60+ document . querySelector ( `.inputField[step="${ step } "]` ) ?. classList . remove ( 'active' ) ;
61+ step ++ ;
62+ document . querySelector ( `.inputField[step="${ step } "]` ) ?. classList . add ( 'active' ) ;
63+ } else {
64+ document . getElementById ( 'next' ) ?. classList . add ( 'hidden' ) ;
65+ document . getElementById ( 'create' ) ?. classList . remove ( 'hidden' ) ;
66+ } ;
67+ if ( step >= document . querySelectorAll ( '.inputField' ) . length ) {
68+ document . getElementById ( 'next' ) ?. classList . add ( 'hidden' ) ;
69+ document . getElementById ( 'create' ) ?. classList . remove ( 'hidden' ) ;
70+ } ;
71+ if ( step === 1 ) {
72+ document . getElementById ( 'back' ) ?. classList . add ( 'hidden' ) ;
73+ } else {
74+ document . getElementById ( 'back' ) ?. classList . remove ( 'hidden' ) ;
75+ } ;
76+ } ;
77+
78+ function back ( ) {
79+ if ( step > 1 ) {
80+ document . querySelector ( `.inputField[step="${ step } "]` ) ?. classList . remove ( 'active' ) ;
81+ step -- ;
82+ document . querySelector ( `.inputField[step="${ step } "]` ) ?. classList . add ( 'active' ) ;
83+ } else {
84+ document . getElementById ( 'back' ) ?. classList . add ( 'hidden' ) ;
85+ } ;
86+ if ( step < document . querySelectorAll ( '.inputField' ) . length ) document . getElementById ( 'next' ) ?. classList . remove ( 'hidden' ) ;
87+ if ( step === 1 ) {
88+ document . getElementById ( 'back' ) ?. classList . add ( 'hidden' ) ;
89+ } else {
90+ document . getElementById ( 'back' ) ?. classList . remove ( 'hidden' ) ;
91+ } ;
92+ document . getElementById ( 'create' ) ?. classList . add ( 'hidden' ) ;
93+ } ;
94+
95+ document . querySelectorAll ( '.inputField' ) . forEach ( field => {
96+ field . querySelectorAll ( 'input, textarea' ) . forEach ( input => {
97+ input . addEventListener ( 'keydown' , function ( event ) {
98+ if ( event . key === 'Enter' ) {
99+ event . preventDefault ( ) ;
100+ next ( ) ;
101+ } ;
102+ localStorage . setItem ( field . id , input . value ) ;
103+ document . querySelector ( '.fixed2' ) . classList . add ( 'visible' ) ;
104+ setTimeout ( ( ) => {
105+ document . querySelector ( '.fixed2' ) . classList . remove ( 'visible' ) ;
106+ } , 2000 ) ;
107+ } ) ;
108+ } ) ;
109+ field . querySelectorAll ( '.checkbox' ) . forEach ( checkbox => {
110+ checkbox . addEventListener ( 'click' , function ( ) {
111+ checkbox . classList . toggle ( 'checked' ) ;
112+ const input = field . querySelector ( 'input[type="checkbox"]' ) ;
113+ input . checked = ! input . checked ;
114+ localStorage . setItem ( field . id , input . checked ) ;
115+ document . querySelector ( '.fixed2' ) . classList . add ( 'visible' ) ;
116+ setTimeout ( ( ) => {
117+ document . querySelector ( '.fixed2' ) . classList . remove ( 'visible' ) ;
118+ } , 2000 ) ;
119+ } ) ;
120+ } ) ;
121+ } ) ;
122+
123+ document . addEventListener ( 'keydown' , function ( event ) {
124+ if ( event . key === 'ArrowRight' || event . key === 'ArrowDown' ) {
125+ event . preventDefault ( ) ;
126+ console . log ( 'Step:' , step ) ;
127+ if ( step === 0 ) {
128+ start ( ) ;
129+ } else {
130+ next ( ) ;
131+ } ;
132+ } else if ( event . key === 'ArrowLeft' || event . key === 'ArrowUp' ) {
133+ event . preventDefault ( ) ;
134+ back ( ) ;
135+ } ;
136+ } ) ;
137+
138+ function create ( ) {
139+ localStorage . clear ( ) ;
140+ } ;
141+
142+ // progress bar
143+ // radio input
144+ // select input
0 commit comments