# kefu-js **Repository Path**: web/kefu-js ## Basic Information - **Project Name**: kefu-js - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-08 - **Last Updated**: 2026-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 客服侧边导航 一个不依赖第三方库的客服悬浮侧边导航组件,支持在线客服、联系电话、手机站点、二维码、在线留言和回到顶部。 ## 使用方式 在页面中引入 `kefu.js`: ```html ``` `items` 数组中的顺序就是页面中的显示顺序。组件默认会自动在最后添加“回到顶部”按钮。 ## 配置项 ### 初始化配置 | 参数 | 类型 | 默认值 | 说明 | | --- | --- | --- | --- | | `container` | String\|Element | `'body'` | 菜单挂载容器,可以传 CSS 选择器或 DOM 元素 | | `className` | String | `'right_nav'` | 菜单的自定义 class | | `bottom` | Number | `100` | 菜单距离浏览器底部的距离,单位为 px | | `topitem` | Boolean | `true` | 是否自动添加“回到顶部”按钮 | | `items` | Array | 默认在线客服、联系电话 | 要显示的客服项目 | | `images` | Object | 内置图片地址 | 覆盖各项目的默认图标 | ### items 项目 每个项目至少需要配置 `type`。业务数据统一放在 `value` 中,组件会根据类型解释它的含义。 | `type` | `value` 含义 | 默认标题 | 默认副标题 | | --- | --- | --- | --- | | `online` | QQ 号码 | `在线客服` | `在线咨询` | | `phone` | 电话号码 | `联系电话` | `热线电话` | | `mobile` | 手机站二维码图片地址 | `手机站点` | `手机扫一扫打开` | | `qr` | 二维码图片地址 | `二维码` | `扫码查看` | | `message` | 留言页面地址 | `在线留言` | 无 | | `top` | 不需要配置 | `回到顶部` | 无 | 每个项目都支持自定义 `title`。`online`、`phone`、`mobile`、`qr` 还支持自定义 `subtitle`: ```javascript { type: 'phone', value: '18888888888', title: '联系我们', subtitle: '服务热线' } ``` 通常不需要手动添加 `top`。如果需要自定义“回到顶部”的标题,可以手动传入: ```javascript { type: 'top', title: '返回顶部' } ``` ## 完整示例 ```javascript KefuFloatMenu.init({ container: 'body', className: 'right_nav', bottom: 80, topitem: true, images: { online: './imgs/online.png', onlineButton: './imgs/rnqq.png', phone: './imgs/rnphone.png', mobile: './imgs/rnphone.png', qr: './imgs/rnqrcode.png', message: './imgs/rnmsg.png', top: './imgs/rntop.png' }, items: [ { type: 'online', value: '123456789', title: '在线客服', subtitle: '点击 QQ 咨询' }, { type: 'phone', value: '18888888888' }, { type: 'mobile', value: './imgs/mobile-qrcode.png' }, { type: 'qr', value: './imgs/qr.png' }, { type: 'message', value: '/message' } ] }); ``` ## 隐藏回到顶部 ```javascript KefuFloatMenu.init({ topitem: false, items: [ { type: 'online', value: '123456789' }, { type: 'phone', value: '18888888888' } ] }); ``` ## 方法 ### 销毁菜单 ```javascript KefuFloatMenu.destroy(); ``` 再次调用 `KefuFloatMenu.init(...)` 时,组件会先移除上一次创建的菜单,再创建新的菜单。 ## 注意事项 - `items` 不是数组时,会使用默认项目配置。 - 未知的 `type` 会被忽略。 - `message` 没有配置 `value` 时,点击不会跳转。 - `mobile` 和 `qr` 的 `value` 应该是可访问的图片地址。 - “回到顶部”按钮只有在页面滚动超过 100px 后才会显示。