Библиотека Interact.js предоставляет набор глобальных методов для управления взаимодействием с элементами DOM, настройки поведения перетаскивания, масштабирования, жестов и их интеграции с приложением. Глобальные методы позволяют работать с библиотекой на уровне всей страницы, независимо от конкретного элемента.
interact(target)Метод interact является основным глобальным интерфейсом
библиотеки. Он принимает аргумент target, который может
быть:
'.draggable')document.getElementById('box'))Пример использования:
interact('.draggable')
.draggable({
listeners: {
start(event) {
console.log('Начало перетаскивания', event.target);
},
move(event) {
event.target.style.transform = `translate(${event.dx}px, ${event.dy}px)`;
},
end(event) {
console.log('Окончание перетаскивания');
}
}
});
Ключевые моменты:
.options
или .styleCursor.interact.maxInteractions()Метод ограничивает количество одновременных взаимодействий пользователя с элементами страницы.
interact.maxInteractions(2);
Применение:
interact.pointerMoveTolerance()Метод задает порог движения указателя (в пикселях), при котором начинается событие drag.
interact.pointerMoveTolerance(5);
interact.stop()Останавливает все активные взаимодействия на странице:
interact.stop();
interact.on() / interact.off()Глобальная подписка на события, происходящие в библиотеке. Позволяет слушать события на уровне всей страницы.
interact.on('dragstart', event => {
console.log('Началось перетаскивание элемента', event.target);
});
interact.off('dragstart');
interact.on(event, listener) — добавляет глобальный
слушатель.interact.off(event, listener) — удаляет слушатель.interact.createSnapGrid()Метод позволяет создавать глобальную сетку привязки для элементов:
interact('.draggable').draggable({
modifiers: [
interact.createSnapGrid({ x: 50, y: 50 })
]
});
x и y задают шаг сетки по
горизонтали и вертикали.restrictRect или restrictEdges.interact.supportedГлобальное свойство, показывающее, поддерживается ли библиотека в текущем браузере:
if (interact.supported) {
console.log('Interact.js поддерживается этим браузером');
} else {
console.warn('Не поддерживается');
}
true или false.interact.isSet(target)Проверяет, зарегистрирован ли элемент или селектор в качестве interactable:
if (!interact.isSet('#box')) {
interact('#box').draggable(true);
}
Interact.js позволяет задавать глобальные настройки для всех модификаторов через методы типа:
interact.modifiers.snap()interact.modifiers.restrict()interact.modifiers.restrictEdges()interact.modifiers.restrictRect()Пример глобального snap:
interact.modifiers.snap({
targets: [interact.createSnapGrid({ x: 20, y: 20 })],
range: Infinity,
relativePoints: [{ x: 0.5, y: 0.5 }]
});
interact.autoScroll()Метод включает автоматическую прокрутку родительских контейнеров при перетаскивании элементов к краям:
interact.autoScroll(true);
maxInteractions) улучшает
отзывчивость интерфейса при сложных страницах с множеством drag/resize
элементов.interact.supported предотвращает вызовы методов в
неподдерживаемых браузерах, что делает код более стабильным.Глобальные методы Interact.js формируют основу для управления всеми интерактивными элементами на странице и позволяют централизованно контролировать поведение drag, resize и gesture событий без необходимости индивидуальной настройки каждого элемента.