# xjs 一个**“最小可用、可直接用 ` ``` 引入后会得到这些全局变量: - `xjs`(**推荐统一使用**,也是一个 selector 函数) - `animal`(兼容别名,等同于 `xjs`) - `Layer` 如果你确实想全局占用 `$`(可能与 jQuery 冲突),在引入前设置: ```html ``` --- ## 🚀 快速上手 示例中统一直接使用 `xjs(...)`,不再额外定义 `$` 等别名(避免与其他库冲突,也更清晰)。 ### 1. 基础动画 (`.animate`) ```javascript xjs('.box').animate({ x: 200, // 自动处理 transform scale: 1.5, opacity: 0.5, backgroundColor: '#f00', duration: 800, easing: 'ease-out' }).then(() => { console.log('Animation done'); }); ``` ### 2. 弹窗交互 (`.layer`) 直接在选择器上绑定点击弹窗事件。 ```javascript // 点击按钮触发弹窗 xjs('.btn-delete').layer({ title: '确定删除?', text: '此操作不可恢复', icon: 'warning', showCancelButton: true }); ``` ### 3. SVG 描边 (`.draw`) ```javascript xjs('path').draw({ duration: 1500, easing: 'ease-in-out' }); ``` --- ## 📚 详细功能 ### Animal: 动画引擎 #### 物理弹簧 (Spring) 无需配置复杂的贝塞尔曲线,使用物理参数即可。 ```javascript xjs('.card').animate({ y: [100, 0], easing: { stiffness: 200, damping: 10 } }); ``` #### 视口触发 (InView) 元素进入屏幕可视区域时自动播放。 ```javascript xjs('.fade-up').inViewAnimate({ y: [50, 0], opacity: [0, 1], duration: 600 }, { once: true }); ``` #### 滚动驱动 (Scroll) 将动画进度绑定到页面滚动条。 ```javascript const controls = xjs('.progress').animate({ width: ['0%', '100%'], autoplay: false }); // 使用静态方法 xjs.scroll 绑定 xjs.scroll(controls); ``` #### 时间轴 (Timeline) 编排串行复杂的动画序列。 ```javascript const tl = xjs.timeline(); tl.add('.box-1', { x: 100 }) .add('.box-2', { x: 100 }, '-=200') // 提前 200ms .play(); ``` --- ### Layer: 弹出层 虽然推荐使用 `xjs('.el').layer(...)` 绑定事件,但你也完全可以通过全局对象手动调用。 #### 基础弹窗 (直接调用 xjs.layer) ```javascript xjs.layer({ title: 'Hello World', text: 'This is a message from xjs.layer()' }); ``` #### Confirm 确认流程 ```javascript xjs.layer({ title: '提交表单?', showCancelButton: true }).then((res) => { if (res.isConfirmed) { xjs.layer({ title: '提交成功!', icon: 'success' }); } }); ``` #### 弹窗内容支持 DOM/HTML ```javascript // 传入 DOM 元素 xjs.layer({ title: 'Custom Content', content: document.querySelector('#my-template') }); // 或者传入 HTML 字符串 xjs.layer({ html: 'Bold Text
New line' }); ``` #### 配置参数表 | 参数名 | 说明 | | :--- | :--- | | `title` | 标题 | | `text` | 正文 (纯文本) | | `html` | 正文 (HTML 字符串) | | `content` | 正文 (DOM 元素或 CSS 选择器) | | `icon` | `success` / `error` / `warning` | | `showCancelButton` | 是否显示取消按钮 (默认 false) | | `confirmButtonText` | 确认按钮文字 (默认 OK) | | `cancelButtonText` | 取消按钮文字 (默认 Cancel) | --- ## 🛠️ API 速查表 | 调用方式 | 描述 | | :--- | :--- | | **`xjs(selector)`** | **核心选择器**,返回 Selection 对象 | | `Selection.animate(params)` | 执行动画 | | `Selection.draw(params)` | SVG 描边动画 | | `Selection.layer(options)` | 绑定点击弹窗 | | `Selection.inViewAnimate(...)` | 进入视口触发动画 | | **`xjs.spring(config)`** | 创建物理缓动函数 | | **`xjs.timeline()`** | 创建时间轴 | | **`xjs.scroll(controls)`** | 绑定滚动驱动 | | **`xjs.layer(options)`** | **直接弹出窗口 (别名 xjs.fire)** |