-
Notifications
You must be signed in to change notification settings - Fork 1
RU Масштабирование
Вики ▸ Справка по API ▸ Поведение ▸ Масштабирование
English | Русский
Это поведение автоматически создаёт слушатели событий для обработки жестов масштабирования и панорамирования на элементе-контейнере. Поддерживаются как события мыши, так и события прикосновения.
# d3.behavior.zoom()
Конструирует новое поведение масштабирования.
# zoom(selection)
Применяет поведение масштабирования на указанную выборку selection, регистрируя необходимые слушатели событий для поддержки панорамирования и масштабирования.
# zoom.translate([translate])
Определяет текущий вектор смещения панорамы. Если не указан, возвращает текущий вектор смещения, который по умолчанию установлен в [0, 0].
# zoom.scale([scale])
Определяет текущий масштаб. Если не указан, возвращает текущий масштаб, который по умолчанию установлен в 1.
# zoom.scaleExtent([extent])
Определяет возможный диапазон масштабирвания как двухэлементный массив [минимум, максимум]. Если не указан, возвращает текущий диапазон, который по умолчанию установлен в [0, Infinity].
# zoom.center([center])
Если указан параметр center, устанавливает точку фокуса [x, y] для масштабирования с помощью колёсика мыши и возвращает это поведение. Если параметр center не указан, возвращает текущую точку фокуса, которая по умолчанию установлена в null
. Значение null
указывает, что масштабирование с помощью колёсика мыши будет изменять масштаб в текущей позиции курсора.
# zoom.size([size])
Если указан параметр size, устанавливает размер области просмотра в указанные размеры [width, height] и возвращает это поведение. Если параметр size не указан, возвращает текущие размеры области просмотра, которые по умолчанию установлены в [960, 500]. Параметр size необходим для поддержки плавного масштабирования в процессе перехода.
# zoom.x([x])
Указывает шкалу x, чей домен будет автоматически подстраиваться при масштабировании. Если параметр не указан, возвращает текущую шкалу, которая по умолчанию установлена в null
. Если домен или диапазон шкалы изменяется программно, эта функция должна быть вызвана повторно. Установка шкалы также сбросит текущий масштаб в 1, а смещение в [0, 0].
# zoom.y([y])
Указывает шкалу y, чей домен будет автоматически подстраиваться при масштабировании. Если параметр не указан, возвращает текущую шкалу, которая по умолчанию установлена в null
. Если домен или диапазон шкалы изменяется программно, эта функция должна быть вызвана повторно. Установка шкалы также сбросит текущий масштаб в 1, а смещение в [0, 0].
# zoom.on(type, listener)
Регистрирует указанный слушатель listener для приёма событий указанного типа type от поведения масштабирования. Поддерживаются следующие типы событий:
- zoomstart — возникает при начале жеста масштабирования (например, по событию touchstart).
- zoom — возникает при изменении вида (например, по событию touchmove).
- zoomend — возникает при окончании текущего жеста масштабирования (например, по событию touchend).
Если слушатель событий уже был зарегистрирован под тем же самым типом, существующий слушатель удаляется перед добавлением нового слушателя. Для регистрирования нескольких слушателей одного типа события, за типом может следовать необязательное пространство имён, например, "zoom.foo" или "zoom.bar". Для удаления слушателя передайте null
в качестве слушателя.
Для событий mousewheel, которые происходят дискретно без явного сообщения браузером их начала и окончания, события, произошедшие в пределах 50 милисекунд, группируются в один жест масштабирования. Если вы хотите более надёжного интерпретирования этих жестов, пожалуйста, направьте прошение поставщику вашего браузера по лучшей поддержке событий касания.
При срабатывании, объект d3.event будет содержать следующие свойства:
- scale — число; текущий масштаб.
- translate — двухэлементный массив, представляющий текущий вектор смещения.
# zoom.event(selection)
Если параметр selection является выборкой, неменденно направляет событие масштабирования в зарегистрированные слушатели, как последовательность трёх событий: zoomstart, zoom и zoomend. Это может быть полезно для срабатывания слушателей после программной установки смещения или масштаба. Если параметр selection является переходом, регистрирует соответствующую функцию перехода, так что поведение масштабирования отправляет события во время перехода: событие zoomstart при начале перехода из предыдущего вида, события zoom по каждому тику перехода и событие zoomend по окончании перехода. Обратите внимание, что переход будет прерван, если пользователь начнёт масштабирование до окончания перехода.