interact.js 安装与使用指南:从入门到模块化
2026-02-04 04:21:40作者:幸俭卉
项目简介
interact.js 是一个强大的 JavaScript 拖放、缩放和多点触控手势库,它可以帮助开发者轻松实现各种交互效果。本文将详细介绍 interact.js 的多种安装方式及其适用场景。
安装方式概览
interact.js 提供了两种主要的安装方案:
- 完整打包版:适合快速开始项目开发
- 模块化版本:适合对性能有要求,需要按需加载功能的项目
完整打包版安装
npm 安装方式
推荐在 Node.js 项目中使用 npm 安装完整打包版:
npm install --save interactjs
安装完成后,可以通过以下方式引入:
// ES6 模块导入
import interact from 'interactjs'
// 或者使用 CommonJS/AMD
const interact = require('interactjs')
完整打包版包含了 interact.js 的所有功能,使用 ES5 语法打包,兼容性良好。
CDN 引入方式
对于简单的 HTML 项目,可以直接通过 CDN 引入:
<script src="https://cdn.jsdelivr.net/npm/interactjs/dist/interact.min.js"></script>
<!-- 或者 -->
<script src="https://unpkg.com/interactjs/dist/interact.min.js"></script>
CDN 版本会自动检测环境,以 CommonJS、AMD 或全局变量的形式暴露 interact 对象。
模块化安装(按需加载)
对于对性能要求较高的项目,interact.js 提供了模块化安装方案,可以只安装需要的功能模块。
npm 模块化安装
npm install --save @interactjs/interact \
@interactjs/auto-start \
@interactjs/actions \
@interactjs/modifiers \
@interactjs/dev-tools
然后按需导入所需模块:
import '@interactjs/auto-start'
import '@interactjs/actions/drag'
import '@interactjs/actions/resize'
import '@interactjs/modifiers'
import '@interactjs/dev-tools'
import interact from '@interactjs/interact'
// 使用示例
interact('.item').draggable({
listeners: {
move(event) {
console.log(event.pageX, event.pageY)
}
}
})
模块功能说明
| 模块名称 | 功能描述 |
|---|---|
| @interactjs/interact | 核心模块,提供 interact() 方法(必需) |
| @interactjs/actions | 提供拖拽、缩放和手势操作功能 |
| @interactjs/auto-start | 支持指针按下、移动序列触发操作 |
| @interactjs/modifiers | 提供各种修饰器,如吸附、限制等 |
| @interactjs/snappers | 提供 interact.snappers.grid() 工具方法 |
| @interactjs/inertia | 提供拖拽和缩放的惯性效果 |
| @interactjs/reflow | 提供 interactable.reflow(action) 方法,用于触发修饰器和事件监听器 |
| @interactjs/dev-tools | 开发工具,提供常见错误的控制台警告(生产环境会自动优化掉) |
CDN 模块化引入
现代浏览器支持 ES6 模块导入,可以直接通过 CDN 按需加载:
<script type="module">
import 'https://cdn.interactjs.io/v1.9.20/auto-start/index.js'
import 'https://cdn.interactjs.io/v1.9.20/actions/drag/index.js'
import 'https://cdn.interactjs.io/v1.9.20/actions/resize/index.js'
import 'https://cdn.interactjs.io/v1.9.20/modifiers/index.js'
import 'https://cdn.interactjs.io/v1.9.20/dev-tools/index.js'
import interact from 'https://cdn.interactjs.io/v1.9.20/interactjs/index.js'
interact('.item').draggable({
onmove(event) {
console.log(event.pageX, event.pageY)
}
})
</script>
特殊环境适配
TypeScript 支持
如果只需要 TypeScript 类型定义,可以单独安装:
npm install --save-dev @interactjs/types
Ruby on Rails 集成
Rails 5.1+ 项目可以通过 yarn 安装:
yarn add interactjs
然后在应用中引入:
//= require interactjs/interact
选择建议
- 初学者:建议使用完整打包版,简单易用
- 生产环境:建议使用模块化方案,按需加载,减少打包体积
- 现代浏览器项目:可以使用 CDN 的 ES6 模块方案
- 传统项目:使用 CDN 的完整打包版
通过以上多种安装方式,interact.js 可以灵活适应各种开发场景和项目需求。
登录后查看全文
热门项目推荐
相关项目推荐
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00
热门内容推荐
最新内容推荐
Degrees of Lewdity中文汉化终极指南:零基础玩家必看的完整教程Unity游戏翻译神器:XUnity Auto Translator 完整使用指南PythonWin7终极指南:在Windows 7上轻松安装Python 3.9+终极macOS键盘定制指南:用Karabiner-Elements提升10倍效率Pandas数据分析实战指南:从零基础到数据处理高手 Qwen3-235B-FP8震撼升级:256K上下文+22B激活参数7步搞定机械键盘PCB设计:从零开始打造你的专属键盘终极WeMod专业版解锁指南:3步免费获取完整高级功能DeepSeek-R1-Distill-Qwen-32B技术揭秘:小模型如何实现大模型性能突破音频修复终极指南:让每一段受损声音重获新生
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
564
3.82 K
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
892
659
Ascend Extension for PyTorch
Python
375
443
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
348
199
昇腾LLM分布式训练框架
Python
116
145
暂无简介
Dart
795
197
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.36 K
775
openJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力
TSX
1.12 K
268
React Native鸿蒙化仓库
JavaScript
308
359