12.9K ·GitHub
Что это такое?
interact.js — это JavaScript-библиотека, которая добавляет веб-элементам перетаскивание, изменение размера и поддержку жестов с несколькими касаниями, а также встроенные эффекты инерции и привязки.
Это фреймворк или библиотека?
Это самостоятельная библиотека, а не фреймворк: она не трогает DOM, если не считать необязательного изменения курсора, и работает вместе с любым другим кодом или фреймворком.
Как подключить её к проекту?
Установите через npm командой 'npm install interactjs' или загрузите с CDN jsDelivr или unpkg; есть также вариант через гем Rails 5.1+ (yarn add interactjs и строка require) и зависимость Webjars для SBT/Play 2.
Нужен ли мне TypeScript, чтобы ею пользоваться?
Нет. Она написана на TypeScript и поставляется с описаниями типов в npm-пакете, но вы можете установить типы отдельно, если они нужны только для обычного JS-проекта.
Работает ли она в старых браузерах, например в IE?
Да, поддерживается даже IE9 и новее, а также современные десктопные и мобильные версии Chrome, Firefox и Opera.
Работает ли она на сенсорных устройствах и с SVG?
Да, она поддерживает несколько касаний и одновременные взаимодействия на разных устройствах, а также может напрямую работать с SVG-элементами.
Что на самом деле делают инерция и привязка?
Инерция позволяет перетаскиваемым или изменяемым элементам ещё некоторое время двигаться после отпускания, как это делал бы физический предмет, а привязка во время взаимодействия фиксирует элементы на сетке или в определённых точках.
Можно ли одновременно запускать несколько перетаскиваний и изменений размера на странице?
Да, поддерживаются несколько касаний и одновременные взаимодействия, так что несколько жестов могут обрабатываться в одно и то же время.
Есть ли живой пример, чтобы посмотреть, как это работает?
Да, в README есть ссылка на рабочую страницу с примером, где код библиотеки запущен в реальном времени.
What are similar projects?
dragula, lenis, headroom.js, slick, filepond, react-sortable-hoc, Sortable, draggable
Which topics is it in?
snap, touch, drag-and-drop, responsive, animation, css, browser, mobile, ui, web-development, gui, npm