Выразительный JavaScript (Хавербеке) - страница 140

считает координату по оси x той точки, которая является нашей текущей позицией на круге, а >Math.sin выдаёт координату y. Позиции (или углы) больше, чем 2π или меньше чем 0, тоже допустимы – повороты повторяются так, что a+2π означает тот же самый угол, что и a.


Использование синуса и косинуса для вычисления координат

Анимация кота хранит счётчик 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 строится при помощи следующих тегов:

>

>  

>    

>    

>    

>  

>  

>    

>    

>    

>  

>

nameheightcountry
Kilimanjaro5895Tanzania

Для каждой строки в теге >

содержится тег >. Внутри него мы можем размещать ячейки: либо ячейки заголовков >
, либо обычные ячейки >.

Те же данные, что мы использовали в главе 6, снова доступны в переменной >MOUNTAINS.

Напишите функцию >buildTable, которая, принимая массив объектов с одинаковыми свойствами, строит структуру DOM, представляющую таблицу. У таблицы должна быть строка с заголовками, где имена свойств обёрнуты в элементы