Компас D-Lab · занятие 1

Первая веб-страница и первые команды JavaScript

Два урока по 55 минут: от простого HTML-файла до страницы, которая реагирует на нажатие кнопки.

55 + 10 + 55 минут

Введение · 5 минут

Как неподвижный рисунок становится живым

Браузер умеет показывать не только текст и картинки. С помощью JavaScript элементы могут двигаться, менять вид и реагировать на действия пользователя.

HTML — элементы страницы SVG — рисунок из фигур JavaScript — поведение
Анимация — это последовательные изменения, которые браузер показывает во времени. Браузерная игра добавляет к анимации правила и управление.
Вопрос классу: какие части совы можно заставить двигаться независимо друг от друга?
Неподвижное SVG-изображение совы
Сейчас это неподвижное SVG-изображение

Мини-лекция · 10 минут

HTML описывает содержимое страницы

HTML-файл — обычный текстовый документ. В нём специальные обозначения — теги — сообщают браузеру, что является заголовком, абзацем или кнопкой.

Минимум на сегодня

<html> <head> <body> <h1> <p> <button>

<h1> открывает элемент, а </h1> закрывает его. Символ / означает конец элемента.

Файл → код → браузер. Мы редактируем текст, сохраняем файл и обновляем страницу, чтобы увидеть результат.
<!doctype html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <title>Моя страница</title>
</head>
<body>
  <h1>Привет!</h1>
  <p>Это моя первая страница.</p>
  <button>Запустить</button>
</body>
</html>

Привет!

Это моя первая страница.

HTML · справочный экран 1 из 2

Из каких частей состоит HTML-документ

Элементы располагаются один внутри другого. Такой порядок называется вложенностью: весь документ находится внутри <html>, а служебная и видимая части — внутри него.

ЗаписьЧто она сообщает браузеру
<!doctype html>Это современный HTML-документ. Это служебная строка, а не обычный тег.
<html>…</html>Начало и конец всего HTML-документа. Остальные элементы находятся внутри.
<head>…</head>Служебная информация для браузера. Обычно она не показывается внутри страницы.
<meta charset="UTF-8">Задаёт кодировку, чтобы русские буквы отображались правильно. Закрывающий тег не нужен.
<title>…</title>Текст на вкладке браузера, а не заголовок внутри страницы.
<body>…</body>Всё, что пользователь видит в основном окне страницы.
<!doctype html>
<html lang="ru">
  <head>
    <meta charset="UTF-8">
    <title>Название вкладки</title>
  </head>

  <body>
    Видимая часть страницы
  </body>
</html>
Отступы помогают читать код. Браузер обычно поймёт документ и без них, но человеку вложенность видна гораздо лучше.
Важно: строка с title меняет название вкладки, а видимый заголовок создаёт тег h1 внутри body.

HTML · справочный экран 2 из 2

Теги, которые создают содержимое страницы

<h1>Заголовок</h1>
Главный заголовок. Обычно на странице один h1. Браузер показывает его крупнее основного текста.
<p>Текст</p>
Абзац. Каждый новый элемент p образует отдельный фрагмент текста.
<button>Старт</button>
Кнопка. HTML создаёт её внешний элемент, но действие кнопки мы зададим с помощью JavaScript.
id="title"
Атрибут. Дополнительная характеристика внутри открывающего тега. id даёт элементу уникальное имя.

Как устроен парный тег

<h1>Привет!</h1>
  ↑      ↑       ↑
начало  текст   конец

В закрывающем теге после первой угловой скобки стоит /. Названия открывающего и закрывающего тегов должны совпадать.

Частые ошибки

<h1>Привет<h1> — забыли /.

<p>Текст</h1> — названия тегов не совпадают.

<button>Старт — элемент не закрыт.

HTML-тренажёр · уровень 1 из 3

Соедините тег и его назначение

Сначала выберите тег слева, затем подходящее объяснение справа. Одинаковые номера обозначают созданную пару.

HTML-тренажёр · уровень 2 из 3

Соберите разметку из готовых тегов

Перетащите карточку в пропуск. Можно также выбрать карточку щелчком, а затем нажать на нужный пропуск. Щелчок по заполненному пропуску освобождает его.

<body>
Привет!
Это моя страница.
Запустить
</body>

HTML-тренажёр · уровень 3 из 3

Введите теги самостоятельно

Теперь карточек нет. Не забудьте угловые скобки и символ / в закрывающих тегах.

<body>
  Моя первая страница
  Я написал этот код сам.
  Запустить
</body>

Самостоятельная работа · 20 минут

Создайте первую страницу в Notepad++

Работайте по порядку. После каждого действия вернитесь к инструкции и отметьте выполненный шаг. Код лучше набрать самостоятельно.

Цель: получить файл index.html, который открывается в браузере и содержит ваш заголовок, два абзаца и кнопку.
1Создайте папку проекта

Создайте папку D-Lab, а внутри — папку со своим именем. Все файлы занятия сохраняйте только в ней.

2Создайте документ в Notepad++

Откройте Notepad++, выберите «Файл → Создать», затем «Файл → Сохранить как». Имя файла: index.html. Тип файла: «Все типы».

Проверьте, что имя не превратилось в index.html.txt.

3Наберите основу HTML-документа
<!doctype html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <title>Моя первая страница</title>
</head>
<body>

</body>
</html>
4Добавьте заголовок и два абзаца

Между <body> и </body> добавьте собственный текст:

<h1>Привет! Это моя страница</h1>
<p>Меня зовут ...</p>
<p>Я хочу создать ...</p>
5Добавьте кнопку

Под абзацами добавьте строку:

<button>Запустить</button>

Пока кнопка ничего не делает. Мы оживим её после перерыва.

6Откройте страницу в браузере

Нажмите Ctrl+S. Найдите index.html в папке и откройте двойным щелчком. Страница должна показать ваш текст и кнопку.

7Проверьте цикл редактирования

Измените заголовок в Notepad++, сохраните файл сочетанием Ctrl+S, вернитесь в браузер и нажмите F5.

Контрольная точка · затем перерыв 10 минут

HTML-страница готова

Перед перерывом проверьте: файл называется index.html, открывается в браузере и содержит заголовок, текст и кнопку.

После перерыва

Мы добавим JavaScript. Та же самая кнопка изменит цвет страницы и текст заголовка.

Сохраните файл. Не закрывайте папку проекта: во второй части мы продолжим работать с тем же документом.

Мини-лекция · 12 минут

JavaScript заставляет страницу реагировать

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

Цепочка действия

Нажатие → onclick → changePage() → изменение страницы.

onclick — нажатие function — функция id — имя элемента textContent — текст
Не нужно запоминать всю длинную команду сразу. Сначала важно увидеть связь между командой и изменением на странице.
<h1 id="title">Привет!</h1>

<button onclick="changePage()">
  Запустить JavaScript
</button>

<script>
  function changePage() {
    document.body.style.backgroundColor = "orange";
    document.getElementById("title").textContent =
      "JavaScript работает!";
  }
</script>

Привет!

JavaScript · справочный экран 1 из 2

Как кнопка связывается с функцией

JavaScript-код выполняется не сам по себе: браузеру нужно знать, когда запускать нужные команды. В нашем примере момент запуска — щелчок по кнопке.

<script>…</script>
Граница участка страницы, внутри которого записан JavaScript-код.
onclick="changePage()"
HTML-атрибут: при щелчке вызвать функцию с именем changePage.
function changePage()
Создаёт функцию — именованную группу команд, которую можно запускать целиком.
{ … }
Фигурные скобки показывают начало и конец команд, принадлежащих функции.
changePage()
Круглые скобки после имени означают: «вызвать, то есть запустить функцию».
<button onclick="changePage()">
  Запустить
</button>

<script>
  function changePage() {
    // Здесь будут команды
  }
</script>

Что происходит по порядку

1. Пользователь нажимает кнопку.

2. Срабатывает событие onclick.

3. Браузер находит функцию changePage.

4. Команды внутри фигурных скобок выполняются сверху вниз.

JavaScript · справочный экран 2 из 2

Как прочитать команды, даже если они длинные

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

Изменение фона

document.body.style.backgroundColor = "orange";
document
Текущая веб-страница.
body
Её видимая часть.
style
Внешнее оформление элемента.
backgroundColor
Свойство «цвет фона».
= "orange"
Записать новое значение — оранжевый цвет.

Изменение заголовка

document.getElementById("title").textContent =
  "JavaScript работает!";
getElementById("title")
Найти элемент, у которого в HTML записано id="title".
textContent
Текстовое содержимое найденного элемента.
=
Присвоить свойству новое значение.
"…"
Кавычки обозначают текстовое значение — строку.
;
Завершает команду.
Регистр важен. Нужно писать textContent, backgroundColor и changePage с теми же заглавными буквами.

JavaScript-тренажёр · уровень 1 из 3

Соедините фрагмент кода и его действие

JavaScript-тренажёр · уровень 2 из 3

Вставьте команды в подходящие места

Каждая карточка используется один раз. Ориентируйтесь на то, что должно произойти после нажатия.

<h1 id="title">Привет!</h1>
<button >Запустить</button>
<script>
function changePage() {
}
</script>

JavaScript-тренажёр · уровень 3 из 3

Допишите важные части команд

Введите текст без подсказок-карточек. Регистр букв имеет значение.

<h1 id="">Привет!</h1>
<button onclick="">Запустить</button>

document.getElementById("title"). = "Готово!";
document.body.style. = "";

Самостоятельная работа · 21 минута

Добавьте JavaScript в свой файл

Продолжайте работу с тем же index.html. После каждого шага сохраняйте файл и при необходимости обновляйте страницу.

Цель: после нажатия кнопки должны измениться фон страницы и заголовок.
1Откройте существующий index.html

В Notepad++ выберите «Файл → Открыть» и найдите файл из первой части занятия.

2Дайте заголовку имя

Замените открывающий тег заголовка:

<h1 id="title">Привет! Это моя страница</h1>

id="title" позволяет JavaScript найти именно этот элемент.

3Свяжите кнопку с функцией

Измените тег кнопки:

<button onclick="changePage()">Запустить JavaScript</button>
4Добавьте блок JavaScript

Перед закрывающим тегом </body> добавьте:

<script>
  function changePage() {

  }
</script>
5Добавьте две команды

Внутри фигурных скобок функции напишите:

document.body.style.backgroundColor = "orange";
document.getElementById("title").textContent =
  "JavaScript работает!";
6Сохраните и проверьте

Нажмите Ctrl+S, вернитесь в браузер, нажмите F5, затем кнопку «Запустить JavaScript».

Если ничего не произошло, проверьте написание changePage, кавычки, скобки и точку с запятой.

7Сделайте результат своим

Замените orange на deepskyblue, purple, gold или другой цвет. Измените появляющийся заголовок.

8Дополнительное задание

Если осталось время, дайте одному из абзацев id="message" и добавьте в функцию:

document.getElementById("message").textContent =
  "Я изменил страницу с помощью JavaScript!";

Финал · 5 минут

От текстового файла до интерактивной страницы

Сегодня получилось: создать HTML-файл, открыть его в браузере и добавить реакцию на нажатие кнопки.
Рабочая цепочка: изменить код → сохранить Ctrl+S → обновить браузер F5 → проверить результат.
Короткая демонстрация: покажите соседу или классу свою страницу и объясните, какая команда меняет фон, а какая — заголовок.

Результаты работы с конспектом

0/6
тренажёров выполнено
0/7
шагов HTML
0/7
обязательных шагов JS

Следующее занятие

Свяжем страницу с отдельным файлом JavaScript, разберём относительные пути и научимся изменять элементы по их id.