
weatherApp
Presentation
•
Computers
•
1st Grade
•
Hard
Edukoht Edukohter
Used 6+ times
FREE Resource
144 Slides • 0 Questions
1
weatherApp
2
HTML уже тут
3
Попробуй самостоятельно создать все HTML-элементы, которые ты видишь на экране.
4
Подсказки
Создай заголовок первого уровня и укажи туда название своего приложения.
5
6
Подсказки
Создай элемент, в который пользователь может записывать текст. Укажи у него атрибут «placeholder» этому атрибуту укажи вот такое значение: «Write the city here:»
7
8
Подсказки
После этого создай кнопку. Укажи у нее какое-нибудь название.
В нашем примере мы используем «Get the weather»
9
10
Подсказки
После этого создай тег для переноса строчных элементов на новую строку.
11
12
Приукрасим
13
Уже умеем
Обратись к селектору «звездочка» и укажи свойство для смены шрифта.
14
15
Уже умеем
Обратись к элементу «h1» укажи у него свойство:
color
16
17
Уже умеем
Обратись к элементу «h2» укажи у него свойство:
display: inline-block;
18
19
Уже умеем
Обратись к элементу «body» укажи у него свойство:
background-color: #2c3e50;
text-align: center;
20
21
Уже умеем
Обратись к элементу «input» укажи у него свойство:
width: ;
border: none;
height: ;
background-color: ;
border-bottom: ;
outline: ;
color: ;
font-size: ;
22
23
Что-то новое
Мы можем использовать селектор «::placeholder»
Он помогает нам стилизовать атрибут «placeholder»
PS: этот атрибут можно хорошо увидеть в элементе «input» с типом «text»
24
Что-то новое
Воспользуйся селектором «::placeholder»
Укажи у него свойства:
color:
font-size:
25
26
Уже умеем
Сделай у кнопки смену заднего фона при наведении мышкой на нее.
27
28
Уже умеем
Обратись к элементу «button» и укажи у нее свойства:
margin-top: ;
width: ;
height: ;
background-color: ;
text-transform: uppercase;
border: none;
border-radius: ;
margin-left: ;
29
30
Уже умеем
Обратись к классу «card» и укажи у него свойства:
color: ;
margin-top: ;
margin-left: ;
width: ;
border-radius: 8px;
background-color: ;
text-align: left;
padding: ;
position: ;
display: inline-block;
box-shadow: 10px 20px 4px rgba(255, 255, 255, 0.3);
31
32
Уже умеем
Обратись к классу «temp» и укажи у него свойства:
font-size: 70px;
font-weight: bold;
margin: 0px;
display: block;
33
34
Уже умеем
Обратись к классу «tempSign» и укажи у него свойства:
position: absolute;
font-size: 40px;
top: 55px;
left: 45%;
35
36
Уже умеем
Обратись к элементу «img» и укажи у него свойства:
width: 110px;
display: block;
37
38
Уже умеем
Обратись к классу «imgDescription» и укажи у него свойства:
font-size: 20px;
text-transform: uppercase;
39
40
Уже умеем
Обратись к классу «contrySign» и укажи у него свойства:
text-align: center;
background-color: ;
color: ;
border-radius: ;
width: 20%;
display: inline-block;
margin-left: 10px;
41
42
Вот эта мощь
43
Уже умеем
Создай переменную «input» и присвой ей выбранный HTML-элемент «input»
44
45
Уже умеем
Создай переменную «btn» и присвой ей выбранный HTML-элемент «button»
46
47
Уже умеем
Создай переменную «apiKey» и присвой "a52fa4c1cfcfa2f4214881ec92b54c72"
48
49
Что это за номер?
Данный номер - это API ключ. Мы его получаем при регистрации на сайте, который будет предоставлять нам данные. В нашем проекте мы будем работать с сервисом «Openweathermap»
50
Уже умеем
Создай функцию «renderACard», передай туда параметры: temp, cityName, rigeon, img, imgDescription
51
52
Уже умеем
Внутри этой функции создай переменную «newCard» и присвой ей создание элемента «div»
53
54
Уже умеем
Внутри этой функции создай переменную «cityElem» и присвой ей создание элемента «h2»
55
56
Уже умеем
Внутри этой функции создай переменную «tempElem» и присвой ей создание элемента «p»
57
58
Уже умеем
Внутри этой функции создай переменную «tempSignElem» и присвой ей создание элемента «p»
59
60
Уже умеем
Внутри этой функции создай переменную «imgElem» и присвой ей создание элемента «img»
61
62
Уже умеем
Внутри этой функции создай переменную «imgDescriptionElem» и присвой ей создание элемента «p»
63
64
Уже умеем
Внутри этой функции создай переменную «countrySignElem» и присвой ей создание элемента «p»
65
66
Уже умеем
Добавь переменной «newCard» класс «card»
67
68
Уже умеем
Добавь переменной «imgDescriptionElem» класс «imgDescription»
69
70
Уже умеем
Добавь переменной «tempElem» класс «temp»
71
72
Уже умеем
Добавь переменной «tempSignElem» класс «tempSign»
73
74
Уже умеем
Добавь переменной «countrySignElem» класс «contrySign»
75
76
Уже умеем
Вызови у переменной «cityElem» конструкцию для смены текста и присвой ей переменную «cityName»
77
78
Уже умеем
Вызови у переменной «tempElem» конструкцию для смены текста и присвой ей команду для округления переменной «temp» в меньшую сторону.
79
80
Уже умеем
Вызови у переменной «tempSignElem» конструкцию для смены текста и присвой «"°C"»
81
82
Уже умеем
Вызови у переменной «countrySignElem» конструкцию для смены текста и присвой ей переменную «region»
83
84
Уже умеем
Вызови у переменной «imgElem» конструкцию для смены ссылки на фотографию и присвой ей переменную «img»
85
86
Уже умеем
Вызови у переменной «imgDescriptionElem» конструкцию для смены текста и присвой ей переменную «imgDescription»
87
88
Уже умеем
Создай список «elemArr» и добавь в него значения:
cityElem, countrySignElem, tempElem, tempSignElem, imgElem, imgDescriptionElem
89
90
Уже умеем
Создай цикл, который будет выполняться такое же количество раз, сколько элементов находиться в списке «elemArr»
Внутри цикла добавь конструкцию для добавления в элемент «newCard» каждого элемента из списка «elemArr»
91
92
Уже умеем
Добавь в элемент «body» элемент «newCard»
93
94
Немного теории
В интернете мы обычно общаемся с сервером. Именно он предоставляет нам различные веб страницы.
Если мы забиваем в браузер https://www.facebook.com/
то идет подключение к серверу, который выдаёт нам страничку facebook
95
Немного теории
Такое общение происходит постоянно. Когда вы перемещается по разделам какого-нибудь сайта, то сервер обрабатывает эти запросы - ссылки и выдает вам соответствующую страницу.
Посмотрим на примеры:
Сначала мы задаем просто https://www.facebook.com/
Потом зададаем https://www.facebook.com/friends
Страницы, которые нам будет выдавать сервер будут разными.
96
https://www.facebook.com/
97
https://www.facebook.com/friends
98
Немного теории
Сервер может также давать нам не только странички, но и предоставлять данные.
Например мы можем получать рандомные шутки, погоду и многие другие данные.
99
Немного теории
Для этого нам нужно найти API сервис, который предоставит нам эти данные.
Попробуем набрать в браузере:
joke api
100
101
Немного теории
Посмотрим, что у нас интересненького храниться во второй ссылке :)
102
103
Немного теории
Сразу видим, что перед нами открывается большая страничка с документации. Но ее не надо боятся. В этом документе написано, как делать запрос на сервер и получать от него данные :)
104
Немного теории
Самое главное, что нам нужно отыскать в документации к API - это API end point.
Для нас это просто ссылка, при переходе на которую мы будем получать данные от сервера.
105
Вот она - заветная ссылка!
106
Немного теории
Попробуем вставить ее в браузер :)
И посмотрим, что же нам вернет сервер
107
108
Немного теории
Что за странный текст мы получили?
Данные формат представления данных называется JSON. По сути это обычный объект JS.
109
Что такое объект?
Объект - это тип данных, где они представлены в виде пары:
Ключ: "значение"
Пример:
const cat = {
name: "Myska",
age: 2,
color: "grey"
}
Ты можешь увидеть код этого примера на следующем слайде
110

object - Replit
You can open this webpage in a new tab.
111
Немного теории
В данном примере нас интересует получение шутки. Поэтому мы должны достать ее по ключу «joke»
112
113
Немного теории
Чтобы получить эти данные в нашем любимом JavaScript, мы должны создать асинхронную функцию.
Для этого мы воспользуемся ключевым словом «async» перед нашей функцией.
На сегодняшнем уроке мы не будем детально рассматривать асинхронные операции, но применим их на практики.
114
115
Попробуй сам
Создай асинхронную функцию с именем «getData», передай туда параметр «city»
116
117
Немного теории
На следующем слайде мы будем работать с командой «fetch()» . Она позволяет нам сделать запрос на сервер и получить от него информацию. Перед fetch() у нас обязательно должно быть слово «await», так как без него наша асинхронная функция не будет нормально работать. Внутри круглых скобок у конструкции «fetch» мы указываем ссылку, по которой мы будем получать информацию.
118
Попробуй сам
После этого создаем переменную «response» и присваиваем ей конструкцию:
await fetch('https://api.openweathermap.org/data/2.5/weather?q=' + city + '&appid=' + apiKey + '&units=metric')
119
120
Попробуй сам
После этого создаем переменную «data» и присваиваем ей конструкцию:
await response.json();
Данная конструкцию конвертирует нашу информацию в JSON.
121
122
Опять теория
Чтобы получить правильные данные, нам нужно знать к каким ключам обращаться для получения интересующей нас информации.
123
Видим, что ключи main и temp помогут нам температуру в Лондоне.
124
Попробуй сам
После этого создаем переменную «temp» и обращаемся к переменной «data» потом к ключу «main», а потом к ключу «temp».
PS: вот такая конструкция у тебя должна быть:
data["main"]["temp"]
125
126
Получаем название города, в котором ищем погоду
127
Попробуй сам
После этого создаем переменную «cityName» и обращаемся к переменной «data» потом к ключу «name».
128
129
Получаем название страны, в которой ищем погоду
130
Попробуй сам
После этого создаем переменную «region» и обращаемся к переменной «data» потом к ключу «sys», а потом к ключу «country».
131
132
Получаем описание картинки с погодой
133
Попробуй сам
После этого создаем переменную «imgDescription» и обращаемся к переменной «data» потом к ключу «weather», потом к первом элементу списка, потом к ключу «description»
134
135
Получаем саму иконку погоды
136
Попробуй сам
После этого создаем переменную «img» и присваиваем ей ссылку "http://openweathermap.org/img/wn/". К этой ссылке прибавляем data["weather"][0]["icon"] + "@2x.png"
137
138
Откуда берется это ссылка
Данную ссылку мы взяли с сайта «OpenWeatherMap»
При помощи конкатенации этой ссылки, названия фотографии и вот этой строки "@2x.png" мы можем получить иконку погоды.
139
Уже знаешь
Вызови функцию «renderACard» и передай туда параметры:
temp, cityName, region, img, imgDescription
140
141
Уже знаешь
Вызови у кнопки слушатель событий. Действие у слушателя должно быть "clcik".
В его функции создай переменную «city» и присвой ей получение значения из элемента «input»
142
143
Уже знаешь
Внутри функции слушателя событий вызови функцию «getData» с параметром «city»
144
weatherApp
Show answer
Auto Play
Slide 1 / 144
SLIDE
Similar Resources on Wayground
86 questions
Fizioterápia
Presentation
•
9th - 12th Grade
69 questions
скачала6 класс, 5 занятие, чередование корней, впр
Presentation
•
6th Grade
109 questions
reactionGame
Presentation
•
7th Grade
103 questions
ОГЭ мегазабег день 3
Presentation
•
9th Grade
85 questions
Основные задания на проценты
Presentation
•
6th Grade
80 questions
5B. How was it (grammar)
Presentation
•
1st - 2nd Grade
85 questions
ЗНО Віруси. Бактерії
Presentation
•
7th Grade
82 questions
Лекција Обрада видеа у Филмори
Presentation
•
6th Grade
Popular Resources on Wayground
20 questions
STAAR Review Quiz #3
Quiz
•
8th Grade
20 questions
Equivalent Fractions
Quiz
•
3rd Grade
6 questions
Marshmallow Farm Quiz
Quiz
•
2nd - 5th Grade
20 questions
Main Idea and Details
Quiz
•
5th Grade
20 questions
Context Clues
Quiz
•
6th Grade
20 questions
Inferences
Quiz
•
4th Grade
19 questions
Classifying Quadrilaterals
Quiz
•
3rd Grade
12 questions
What makes Nebraska's government unique?
Quiz
•
4th - 5th Grade
Discover more resources for Computers
20 questions
Telling Time to the Hour and Half hour
Quiz
•
1st Grade
16 questions
Counting Coins counting money
Quiz
•
1st - 2nd Grade
20 questions
Halves and Fourths
Quiz
•
1st Grade
10 questions
CA4 Math Review
Presentation
•
1st - 5th Grade
15 questions
Reading Comprehension
Quiz
•
1st - 5th Grade
31 questions
Easter Trivia
Quiz
•
KG - 12th Grade
20 questions
Addition and Subtraction facts
Quiz
•
1st - 3rd Grade
16 questions
3D shapes (1st grade)
Quiz
•
1st Grade