Search Header Logo
weatherApp

weatherApp

Assessment

Presentation

Computers

1st Grade

Hard

Created by

Edukoht Edukohter

Used 6+ times

FREE Resource

144 Slides • 0 Questions

1

weatherApp

Slide image

2

HTML уже тут

Slide image

3

Slide image

Попробуй самостоятельно создать все HTML-элементы, которые ты видишь на экране.

4

Подсказки

Создай заголовок первого уровня и укажи туда название своего приложения.

5

Slide image


6

Подсказки

Создай элемент, в который пользователь может записывать текст. Укажи у него атрибут «‎placeholder»‎ этому атрибуту укажи вот такое значение: «‎Write the city here:»

7

Slide image


8

Подсказки

После этого создай кнопку. Укажи у нее какое-нибудь название.

В нашем примере мы используем «‎Get the weather»

9

Slide image


10

Подсказки

После этого создай тег для переноса строчных элементов на новую строку.

11

Slide image


12

Приукрасим

Slide image

13

Уже умеем

Обратись к селектору «звездочка» и укажи свойство для смены шрифта.

14

Slide image


15

Уже умеем

Обратись к элементу «h1» укажи у него свойство:

color

16

Slide image


17

Уже умеем

Обратись к элементу «h2» укажи у него свойство:

display: inline-block;

18

Slide image


19

Уже умеем

Обратись к элементу «body» укажи у него свойство:

background-color: #2c3e50;

text-align: center;

20

Slide image


21

Уже умеем

Обратись к элементу «input» укажи у него свойство:

width: ;

border: none;

height: ;

background-color: ;

border-bottom: ;

outline: ;

color: ;

font-size: ;

22

Slide image


23

Что-то новое

Мы можем использовать селектор «::placeholder»

Он помогает нам стилизовать атрибут «placeholder»

PS: этот атрибут можно хорошо увидеть в элементе «input» с типом «text»

Slide image

24

Что-то новое

Воспользуйся селектором «::placeholder»

Укажи у него свойства:

color:

font-size:

25

Slide image


26

Уже умеем

Сделай у кнопки смену заднего фона при наведении мышкой на нее.

27

Slide image


28

Уже умеем

Обратись к элементу «button» и укажи у нее свойства:

margin-top: ;

width: ;

height: ;

background-color: ;

text-transform: uppercase;

border: none;

border-radius: ;

margin-left: ;

29

Slide image


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

Slide image


32

Уже умеем

Обратись к классу «temp» и укажи у него свойства:

font-size: 70px;

font-weight: bold;

margin: 0px;

display: block;

33

Slide image


34

Уже умеем

Обратись к классу «tempSign» и укажи у него свойства:

position: absolute;

font-size: 40px;

top: 55px;

left: 45%;

35

Slide image


36

Уже умеем

Обратись к элементу «img» и укажи у него свойства:

width: 110px;

display: block;

37

Slide image


38

Уже умеем

Обратись к классу «imgDescription» и укажи у него свойства:

font-size: 20px;

text-transform: uppercase;

39

Slide image


40

Уже умеем

Обратись к классу «contrySign» и укажи у него свойства:

text-align: center;

background-color: ;

color: ;

border-radius: ;

width: 20%;

display: inline-block;

margin-left: 10px;

41

Slide image


42

Вот эта мощь

Slide image

43

Уже умеем

Создай переменную «input» и присвой ей выбранный HTML-элемент «input»

44

Slide image


45

Уже умеем

Создай переменную «btn» и присвой ей выбранный HTML-элемент «button»

46

Slide image


47

Уже умеем

Создай переменную «apiKey» и присвой "a52fa4c1cfcfa2f4214881ec92b54c72"

48

Slide image


49

Что это за номер?

Данный номер - это API ключ. Мы его получаем при регистрации на сайте, который будет предоставлять нам данные. В нашем проекте мы будем работать с сервисом «Openweathermap»

50

Уже умеем

Создай функцию «renderACard», передай туда параметры: temp, cityName, rigeon, img, imgDescription

51

Slide image


52

Уже умеем

Внутри этой функции создай переменную «newCard» и присвой ей создание элемента «div»

53

Slide image


54

Уже умеем

Внутри этой функции создай переменную «cityElem» и присвой ей создание элемента «h2»

55

Slide image


56

Уже умеем

Внутри этой функции создай переменную «tempElem» и присвой ей создание элемента «p»

57

Slide image


58

Уже умеем

Внутри этой функции создай переменную «tempSignElem» и присвой ей создание элемента «p»

59

Slide image


60

Уже умеем

Внутри этой функции создай переменную «imgElem» и присвой ей создание элемента «img»

61

Slide image


62

Уже умеем

Внутри этой функции создай переменную «imgDescriptionElem» и присвой ей создание элемента «p»

63

Slide image


64

Уже умеем

Внутри этой функции создай переменную «countrySignElem» и присвой ей создание элемента «p»

65

Slide image


66

Уже умеем

Добавь переменной «newCard» класс «card»

67

Slide image


68

Уже умеем

Добавь переменной «imgDescriptionElem» класс «imgDescription»

69

Slide image


70

Уже умеем

Добавь переменной «tempElem» класс «temp»

71

Slide image


72

Уже умеем

Добавь переменной «tempSignElem» класс «tempSign»

73

Slide image


74

Уже умеем

Добавь переменной «countrySignElem» класс «contrySign»

75

Slide image


76

Уже умеем

Вызови у переменной «cityElem» конструкцию для смены текста и присвой ей переменную «cityName»

77

Slide image


78

Уже умеем

Вызови у переменной «tempElem» конструкцию для смены текста и присвой ей команду для округления переменной «temp» в меньшую сторону.

79

Slide image


80

Уже умеем

Вызови у переменной «tempSignElem» конструкцию для смены текста и присвой «"°C"»

81

Slide image


82

Уже умеем

Вызови у переменной «countrySignElem» конструкцию для смены текста и присвой ей переменную «region»

83

Slide image


84

Уже умеем

Вызови у переменной «imgElem» конструкцию для смены ссылки на фотографию и присвой ей переменную «img»

85

Slide image


86

Уже умеем

Вызови у переменной «imgDescriptionElem» конструкцию для смены текста и присвой ей переменную «imgDescription»

87

Slide image


88

Уже умеем

Создай список «elemArr» и добавь в него значения:

cityElem, countrySignElem, tempElem, tempSignElem, imgElem, imgDescriptionElem

89

Slide image


90

Уже умеем

Создай цикл, который будет выполняться такое же количество раз, сколько элементов находиться в списке «elemArr»

Внутри цикла добавь конструкцию для добавления в элемент «newCard» каждого элемента из списка «elemArr»

91

Slide image


92

Уже умеем

Добавь в элемент «body» элемент «newCard»

93

Slide image


94

Немного теории

В интернете мы обычно общаемся с сервером. Именно он предоставляет нам различные веб страницы.

Если мы забиваем в браузер https://www.facebook.com/

то идет подключение к серверу, который выдаёт нам страничку facebook

95

Немного теории

Такое общение происходит постоянно. Когда вы перемещается по разделам какого-нибудь сайта, то сервер обрабатывает эти запросы - ссылки и выдает вам соответствующую страницу.


Посмотрим на примеры:

Сначала мы задаем просто https://www.facebook.com/

Потом зададаем https://www.facebook.com/friends

Страницы, которые нам будет выдавать сервер будут разными.

96

Slide image

https://www.facebook.com/

97

Slide image

https://www.facebook.com/friends

98

Немного теории

Сервер может также давать нам не только странички, но и предоставлять данные.

Например мы можем получать рандомные шутки, погоду и многие другие данные.

99

Немного теории

Для этого нам нужно найти API сервис, который предоставит нам эти данные.


Попробуем набрать в браузере:

joke api

100

Slide image


101

Немного теории

Посмотрим, что у нас интересненького храниться во второй ссылке :)

102

Slide image


103

Немного теории

Сразу видим, что перед нами открывается большая страничка с документации. Но ее не надо боятся. В этом документе написано, как делать запрос на сервер и получать от него данные :)


104

Немного теории

Самое главное, что нам нужно отыскать в документации к API - это API end point.

Для нас это просто ссылка, при переходе на которую мы будем получать данные от сервера.


105

Slide image

Вот она - заветная ссылка!

106

Немного теории

Попробуем вставить ее в браузер :)

И посмотрим, что же нам вернет сервер

107

Slide image


108

Немного теории

Что за странный текст мы получили?

Данные формат представления данных называется JSON. По сути это обычный объект JS.

109

Что такое объект?

Объект - это тип данных, где они представлены в виде пары:

Ключ: "значение"

Пример:

const cat = {

name: "Myska",

age: 2,

color: "grey"

}

Ты можешь увидеть код этого примера на следующем слайде

110

web page not embeddable
object - Replit

object - Replit

You can open this webpage in a new tab.

111

Немного теории

В данном примере нас интересует получение шутки. Поэтому мы должны достать ее по ключу «joke»

112

Slide image


113

Немного теории

Чтобы получить эти данные в нашем любимом JavaScript, мы должны создать асинхронную функцию.

Для этого мы воспользуемся ключевым словом «async» перед нашей функцией.

На сегодняшнем уроке мы не будем детально рассматривать асинхронные операции, но применим их на практики.

114

Slide image


115

Попробуй сам

Создай асинхронную функцию с именем «getData», передай туда параметр «city»

116

Slide image


117

Немного теории

На следующем слайде мы будем работать с командой «fetch()» . Она позволяет нам сделать запрос на сервер и получить от него информацию. Перед fetch() у нас обязательно должно быть слово «await», так как без него наша асинхронная функция не будет нормально работать. Внутри круглых скобок у конструкции «fetch» мы указываем ссылку, по которой мы будем получать информацию.

118

Попробуй сам

После этого создаем переменную «response» и присваиваем ей конструкцию:

await fetch('https://api.openweathermap.org/data/2.5/weather?q=' + city + '&appid=' + apiKey + '&units=metric')

119

Slide image


120

Попробуй сам

После этого создаем переменную «data» и присваиваем ей конструкцию:

await response.json();

Данная конструкцию конвертирует нашу информацию в JSON.

121

Slide image


122

Опять теория

Чтобы получить правильные данные, нам нужно знать к каким ключам обращаться для получения интересующей нас информации.

123

Slide image

Видим, что ключи main и temp помогут нам температуру в Лондоне.

124

Попробуй сам

После этого создаем переменную «temp» и обращаемся к переменной «data» потом к ключу «main», а потом к ключу «temp».

PS: вот такая конструкция у тебя должна быть:

data["main"]["temp"]

125

Slide image


126

Slide image

Получаем название города, в котором ищем погоду

127

Попробуй сам

После этого создаем переменную «cityName» и обращаемся к переменной «data» потом к ключу «name».


128

Slide image


129

Slide image

Получаем название страны, в которой ищем погоду

130

Попробуй сам

После этого создаем переменную «region» и обращаемся к переменной «data» потом к ключу «sys», а потом к ключу «country».

131

Slide image


132

Slide image

Получаем описание картинки с погодой

133

Попробуй сам

После этого создаем переменную «imgDescription» и обращаемся к переменной «data» потом к ключу «weather», потом к первом элементу списка, потом к ключу «description»

134

Slide image


135

Slide image

Получаем саму иконку погоды

136

Попробуй сам

После этого создаем переменную «img» и присваиваем ей ссылку "http://openweathermap.org/img/wn/". К этой ссылке прибавляем data["weather"][0]["icon"] + "@2x.png"

137

Slide image


138

Откуда берется это ссылка

Данную ссылку мы взяли с сайта «OpenWeatherMap»

При помощи конкатенации этой ссылки, названия фотографии и вот этой строки "@2x.png" мы можем получить иконку погоды.

139

Уже знаешь

Вызови функцию «renderACard» и передай туда параметры:

temp, cityName, region, img, imgDescription

140

Slide image


141

Уже знаешь

Вызови у кнопки слушатель событий. Действие у слушателя должно быть "clcik".

В его функции создай переменную «city» и присвой ей получение значения из элемента «input»

142

Slide image


143

Уже знаешь

Внутри функции слушателя событий вызови функцию «getData» с параметром «city»

144

Slide image


weatherApp

Slide image

Show answer

Auto Play

Slide 1 / 144

SLIDE