1+ const questions = [
2+ 'У вас будет свой транспорт?' ,
3+ 'Уже выбрали места для наблюдений за сиянием?' ,
4+ 'Изучили, как сделать хорошие фотографии ночью?' ,
5+ 'Погоду обещают безоблачную?' ,
6+ 'KP-индексы в дни поездки 3 и выше?' ,
7+ 'Тёплая одежда с собой?' ,
8+ 'А еда и горячие напитки?'
9+ ]
10+
11+ const grades = [
12+ 'Всё в порядке, можно смело ехать. И добавить нечего.' ,
13+ 'Неплохо, но есть над чем поработать:' ,
14+ 'Вы полны энтузиазма, но подготовка хромает:'
15+ ]
16+
17+ const tips = [
18+ 'Без своего транспорта почти никак. Можно греться или уехать из под внезапных туч' ,
19+ 'Если выбрать места для наблюдений заранее, не придётся искать точку посреди кромешной тьмы' ,
20+ 'Приятнее, когда можно фотографировать сияние сразу, а не разбираться на месте в настройках. Почитайте гайды или туториалы по ночной съёмке' ,
21+ 'Даже если прогноз KP-индексов хороший, тучи легко перекроют весь вид. Планировать поездку стоит на ясные дни' ,
22+ 'Если KP-индексы на дни поездки низкие, сияние будет выглядеть как беловатые разводы в небе, а не яркие зелёные волны' ,
23+ 'Без теплой одежды можно легко замерзнуть, одевайтесь как на долгую прогулку' ,
24+ 'На холоде приятно иметь согревающие напитки, вроде чая или кофе. А еда поможет не терять силы'
25+ ]
26+
127class Test {
228 constructor ( questions , grades , tips ) {
329 this . questions = questions
430 this . grades = grades
531 this . tips = tips
632 this . answers = new Object ( )
7- this . questionNumber = 0 // Счётчик вопросов, начинается с нуля для правильного поиска по массиву вопросов
8- this . progressCount = 1 // Счётчик прогресса внизу теста, начинается с единицы, т.к. привычный для всех счёт начинается тоже с единицы
33+ this . questionNumber = 0
34+ this . progressCount = 1
935 }
1036
1137 Next ( question , answer , answerButtons , progress ) {
@@ -29,11 +55,11 @@ class Test {
2955
3056 for ( let answer in this . answers ) {
3157 if ( this . answers [ answer ] . answerType === 'disagree' ) {
32- questionIndexes . push ( answer ) // Подводим итог теста. Собираем индексы вопросов, где ответ был «Нет»
58+ questionIndexes . push ( answer )
3359 }
3460 }
3561
36- switch ( true ) { // Выводим оценку
62+ switch ( true ) {
3763 case ( questionIndexes . length === 0 ) :
3864 question . textContent = this . grades [ 0 ]
3965 break
@@ -65,8 +91,7 @@ class Test {
6591 for ( let questionIndex of questionIndexes ) {
6692 const newParagraph = document . createElement ( 'p' )
6793
68- newParagraph . textContent = `${ answerNumber } . ${ this . tips [ questionIndex ] } ` // Индекс вопроса совпадает с индексом совета
69-
94+ newParagraph . textContent = `${ answerNumber } . ${ this . tips [ questionIndex ] } `
7095 if ( questionIndexes . length === 1 ) {
7196 newParagraph . textContent = this . tips [ questionIndex ]
7297 }
@@ -77,44 +102,18 @@ class Test {
77102 }
78103}
79104
80- const questions = [
81- 'У вас будет свой транспорт?' ,
82- 'Уже выбрали места для наблюдений за сиянием?' ,
83- 'Изучили, как сделать хорошие фотографии ночью?' ,
84- 'Погоду обещают безоблачную?' ,
85- 'KP-индексы в дни поездки 3 и выше?' ,
86- 'Тёплая одежда с собой?' ,
87- 'А еда и горячие напитки?'
88- ]
89-
90- const grades = [
91- 'Всё в порядке, можно смело ехать. И добавить нечего.' ,
92- 'Неплохо, но есть над чем поработать:' ,
93- 'Вы полны энтузиазма, но подготовка хромает:'
94- ]
95-
96- const tips = [
97- 'Без своего транспорта почти никак. Можно греться или уехать из под внезапных туч' ,
98- 'Если выбрать места для наблюдений заранее, не придётся искать точку посреди кромешной тьмы' ,
99- 'Приятнее, когда можно фотографировать сияние сразу, а не разбираться на месте в настройках. Почитайте гайды или туториалы по ночной съёмке' ,
100- 'Даже если прогноз KP-индексов хороший, тучи легко перекроют весь вид. Планировать поездку стоит на ясные дни' ,
101- 'Если KP-индексы на дни поездки низкие, сияние будет выглядеть как беловатые разводы в небе, а не яркие зелёные волны' ,
102- 'Без теплой одежды можно легко замерзнуть, одевайтесь как на долгую прогулку' ,
103- 'На холоде приятно иметь согревающие напитки, вроде чая или кофе. А еда поможет не терять силы'
104- ]
105-
106- const test = new Test ( questions , grades , tips ) // Инстанцируем класс
105+ const test = new Test ( questions , grades , tips )
107106
108107const question = document . querySelector ( '.test__question' )
109108const answerButtons = document . querySelectorAll ( '.test__answer' )
110109const progress = document . querySelector ( '.test__progress' )
111110
112- answerButtons . forEach ( button => button . addEventListener ( 'click' , testHandler ) )
111+ answerButtons . forEach ( ( button ) => button . addEventListener ( 'click' , testHandler ) )
113112
114113function testHandler ( event ) {
115114 const answer = event . target . id
116115
117116 setTimeout ( ( ) => {
118- test . Next ( question , answer , answerButtons , progress ) // На клик по кнопкам запускаем метод Next с небольшой задержкой
119- } , 70 )
117+ test . Next ( question , answer , answerButtons , progress )
118+ } , 50 )
120119}
0 commit comments