Марейн Хавербеке - Выразительный JavaScript
- Название:Выразительный JavaScript
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:978-1593275846
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Марейн Хавербеке - Выразительный JavaScript краткое содержание
В процессе чтения вы познакомитесь с основами программирования и, в частности, языка JavaScript, а также выполните несколько небольших проектов. Один из самых интересных проектов — создание своего языка программирования.
Выразительный JavaScript - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Анимация кота хранит счётчик angle для текущего угла поворота анимации, и увеличивает его пропорционально прошедшему времени каждый раз при вызове функции
animation
. Этот угол используется для подсчёта текущей позиции элемента image
. Стиль top
подсчитывается через Math.sin
и умножается на 20 – это вертикальный радиус нашего эллипса. Стиль left
считается через Math.cos
и умножается на 200, так что ширина эллипса гораздо больше высоты.Стилям обычно требуются единицы измерения. В нашем случае приходится добавлять
"px"
к числу, чтобы объяснить браузеру, что мы считаем в пикселях (а не в сантиметрах, ems или других единицах). Это легко забыть. Использование чисел без единиц измерения приведёт к игнорированию стиля, если только число не равно 0, что не зависит от единиц измерения.
Итог
Программы JavaScript могут изучать и изменять текущий отображаемый браузером документ через структуру под названием DOM. Эта структура данных представляет модель документа браузера, а программа JavaScript может изменять её для изменения видимого документа. DOM организован в виде дерева, в котором элементы расположены иерархически в соответствии со структурой документа. У объектов элементов есть свойства типа
parentNode
и childNodes
, которы используются для ориентирования на дереве.Внешний вид документа можно изменять через стили, либо добавляя стили к узлам напрямую, либо определяя правила для каких-либо узлов. У стилей есть очень много свойств, таких, как
color
или display
. JavaScript может влиять на стиль элемента напрямую через его свойство style
.
Упражнения
Строим таблицу
Мы строили таблицы из простого текста в главе 6. HTML упрощает построение таблиц. Таблица в HTML строится при помощи следующих тегов:
name | height | country |
---|---|---|
Kilimanjaro | 5895 | Tanzania |
Для каждой строки в теге
содержится тег . Внутри него мы можем размещать ячейки: либо ячейки заголовков, либо обычные ячейки | .
Те же данные, что мы использовали в главе 6, снова доступны в переменной Напишите функцию |
, и должно быть по одной строчке на объект из массива, где его свойства обёрнуты в элементы | . Здесь пригодится функция Object.keys , возвращающая массив, содержащий имена свойств объекта.
Когда вы разберётесь с основами, выровняйте ячейки с числами по правому краю, изменив их свойство
Элементы по имени тегов Метод Чтобы выяснить имя тега элемента, используйте свойство Заголовок с элементом span внутри.Параграф с раз, два элементами spans.
Шляпа кота Расширьте анимацию кота, чтобы и кот и его шляпа летали по противоположным сторонам эллипса. Или пусть шляпа летает вокруг кота. Или ещё что-нибудь интересное придумайте. Чтобы упростить расположение множества объектов, неплохо будет переключиться на абсолютное позиционирование. Тогда
14. Обработка событий Вы властны над своим разумом, но не над внешними событиями. Когда вы поймёте это, вы обретёте силу. Марк Аврелий, «Медитации»Некоторые программы работают с вводом пользователя, мышью и клавиатурой. Время возникновения такого ввода и последовательность данных нельзя предсказать заранее. Это требует иного подхода к контролю над порядком выполнения программы, чем уже привычный нам. Обработчики событий Представьте интерфейс, в котором единственным способом узнать, нажали ли на кнопку клавиатуры, было бы считывание текущего состояния кнопки. Чтобы реагировать на нажатия, вам пришлось бы постоянно считывать состояния кнопок, чтобы вы могли поймать это состояние, пока кнопка не отжалась. Было бы опасно проводить другие подсчёты, отнимающие процессорное время, так как можно было бы пропустить момент нажатия. Таким образом ввод обрабатывался на примитивных устройствах. Шагом вперёд было бы, если железо или операционка замечали бы нажатие кнопки и передавали бы его в очередь. Затем программа периодически могла бы проверять очередь на новые события и реагировать на то, что находится в очереди. Разумеется, она должна помнить о проверке, и делать это достаточно часто, потому что наличие длительного промежутка времени между нажатием кнопки и тем, когда программа замечает и реагирует на это, ведёт к восприятию этой программы как медленно работающей. Такой подход используется достаточно редко. Вариант получше – некая промежуточная система, которая позволяет коду реагировать на события в момент их возникновения. Браузеры позволяют это делать путём регистрации функций как обработчиков заданных событий. Щёлкните по документу для запуска обработчика.
Функция События и узлы DOM Каждый обработчик событий браузера зарегистрирован в контексте. Когда вы вызываете |
---|
Интервал:
Закладка: