
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
98 questions
Тема 4
Presentation
•
University
66 questions
Steve's website
Presentation
•
2nd Grade
73 questions
скачала 9 кл, огэ 5 задание
Presentation
•
9th Grade
83 questions
ИТ в ПД Лекция 1
Presentation
•
University
63 questions
Правописание союзов
Presentation
•
KG - 2nd Grade
107 questions
Повторување за заменки
Presentation
•
6th - 8th Grade
116 questions
The Blue Diamond
Presentation
•
KG - University
87 questions
ESL: My Family (RUS)
Presentation
•
KG
Popular Resources on Wayground
10 questions
Safety Day 2026 – Student Review
Quiz
•
9th Grade
21 questions
Continents and Oceans
Quiz
•
6th Grade
20 questions
Parts of Speech
Quiz
•
5th Grade
16 questions
Subject & Predicate
Quiz
•
5th Grade
25 questions
Multiplication Facts
Quiz
•
5th Grade
12 questions
Map Skills
Quiz
•
3rd Grade
22 questions
Continents and Oceans
Quiz
•
5th Grade
15 questions
Rounding Decimals
Quiz
•
5th Grade
Discover more resources for Computers
15 questions
Addition and Subtraction
Quiz
•
1st Grade
26 questions
SLIME!!!!!
Quiz
•
KG - 12th Grade
20 questions
Addition and Subtraction facts
Quiz
•
1st - 3rd Grade
20 questions
Place Value
Quiz
•
KG - 3rd Grade
4 questions
K-2 Force and Motion Lesson
Presentation
•
KG - 2nd Grade
10 questions
Fact Families
Quiz
•
1st Grade
10 questions
Identifying Physical and Chemical Changes
Interactive video
•
1st - 5th Grade
15 questions
Place Value tens and ones
Quiz
•
1st Grade