From 3292f6c71d29c39102fb96cebc7efe9438d17006 Mon Sep 17 00:00:00 2001 From: yuantao Date: Fri, 13 Feb 2026 13:33:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=20=E4=BC=98=E5=8C=96README.m?= =?UTF-8?q?d=20API=E6=96=87=E6=A1=A3=EF=BC=8C=E5=B0=86=E5=8E=9F=E7=90=86?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=E6=94=B9=E4=B8=BA=E5=8A=9F=E8=83=BD=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=EF=BC=8C=E4=BC=98=E5=8C=96=E6=96=87=E6=A1=A3=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E5=92=8C=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 644 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 580 insertions(+), 64 deletions(-) diff --git a/README.md b/README.md index 697ce5e..f96e17e 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,53 @@ # Pandora.js 完整 API 文档 -## 1. 基础工具函数 +## 📖 简介 + +Pandora.js 是一款专为新手优化的 JavaScript 插件,提供前端开发中常用的功能模块,API 设计简洁,支持链式调用。 + +### 核心特性 + +- **轻量级**:零依赖,开箱即用 +- **链式调用**:大多数方法支持链式写法 +- **原生 JS**:基于原生 JavaScript 实现,兼容性好 +- **功能丰富**:涵盖 DOM 操作、网络请求、组件交互等 + +### 快速开始 + +```html + + + + + +``` + +--- + +## 1️⃣ 基础工具函数 ### 1.1 alert - 自定义提示框 -**说明**:重写原生 alert,提供美观的提示效果 +**功能说明**: +- 提供美观的自定义提示框,替代原生 alert +- 支持自定义显示时间和主题样式 +- 支持点击遮罩立即关闭 +- 具有平滑的淡入淡出动画效果 **使用方式**: ```javascript alert(content, speed = 800) ``` -**参数**: +**参数说明**: - `content` (string): 提示内容 -- `speed` (number, 可选): 自动消失时间,默认 800ms +- `speed` (number, 可选): 自动消失时间(毫秒),默认 800ms **示例**: ```javascript +// 基础用法 alert('操作成功!') + +// 自定义显示时间 alert('加载中...', 2000) // 2秒后消失 ``` @@ -31,18 +61,29 @@ alert('加载中...', 2000) // 2秒后消失 } ``` +**全局配置**: +```javascript +// 禁用 alert 重写 +window.resetAlert = false +``` + --- ### 1.2 confirm - 自定义确认框 -**说明**:重写原生 confirm,返回 Promise +**功能说明**: +- 提供美观的自定义确认框,替代原生 confirm +- 返回 Promise 对象,支持异步回调 +- 支持自定义按钮文本、标题和内容 +- 支持显示/隐藏确认和取消按钮 +- 支持主题样式自定义 **使用方式**: ```javascript confirm(config) ``` -**参数**: +**参数说明**: ```javascript { title: '标题', // 可选 @@ -50,7 +91,9 @@ confirm(config) confirmText: '确认', // 可选,默认"确认" cancelText: '取消', // 可选,默认"取消" showConfirm: true, // 可选,是否显示确认按钮 - showCancel: true // 可选,是否显示取消按钮 + showCancel: true, // 可选,是否显示取消按钮 + success() {}, // 可选,确认回调 + fail() {} // 可选,取消回调 } ``` @@ -68,45 +111,98 @@ confirm({ title: '提示', content: '是否继续操作?', confirmText: '继续', - cancelText: '放弃' + cancelText: '放弃', + showConfirm: true, + showCancel: true }).then(() => { - // 确认回调 + console.log('确认回调') }).catch(() => { - // 取消回调 + console.log('取消回调') }) + +// 仅显示确认按钮 +confirm({ + content: '操作完成', + showCancel: false +}).then(() => { + console.log('已确认') +}) +``` + +**CSS 变量自定义**: +```css +:root { + --confirmTheme: #fff; /* 背景色 */ + --confirmBg: transparent; /* 遮罩色 */ + --confirmFontSize: 1rem; /* 字体大小 */ + --confirmColor: #636363; /* 字体颜色 */ + --confirmBtnBg: #fafafa; /* 按钮背景 */ + --confirmBtnColor: #636363; /* 按钮文字颜色 */ + --confirmBtnBorder: #f1f1f1; /* 按钮边框颜色 */ +} +``` + +**全局配置**: +```javascript +// 禁用 confirm 重写 +window.resetConfirm = false ``` --- ### 1.3 showLoading / hideLoading - 加载遮罩 +**功能说明**: +- 显示全屏加载遮罩层 +- 支持显示进度文字或数字 +- 使用 SVG 加载动画图标 +- 可随时调用 hideLoading 关闭遮罩 + **使用方式**: ```javascript -showLoading(progress = null) // progress: 显示进度文字 +showLoading(progress = null) hideLoading() ``` +**参数说明**: +- `progress` (string | number, 可选): 显示进度文字或百分比 + **示例**: ```javascript +// 基础用法 showLoading() setTimeout(() => hideLoading(), 2000) +// 显示进度 showLoading('加载中 50%...') -setTimeout(() => hideLoading(), 2000) +setTimeout(() => { + showLoading('加载中 80%...') + setTimeout(() => hideLoading(), 1000) +}, 1000) + +// 显示数字进度 +showLoading(25) // 显示 25% ``` --- -## 2. DOM 操作 +## 2️⃣ DOM 操作 ### 2.1 选择器方法 -**说明**:支持 CSS 选择器语法,类似 jQuery +**功能说明**: +- 支持 CSS 选择器语法选择 DOM 元素 +- 返回 Pandora 实例,支持链式调用 +- 支持类选择器、ID 选择器、标签选择器等 +- 支持层级选择器 + +**使用方式**: +```javascript +const $ = Pandora +``` **示例**: ```javascript -const $ = Pandora - // 基础选择 $('.class') // 类选择器 $('#id') // ID 选择器 @@ -118,15 +214,24 @@ $('#box') .find('.item') .eq(0) .addClass('active') + .css({ color: 'red' }) ``` --- ### 2.2 元素遍历与筛选 +**功能说明**: +- 支持通过索引选择指定元素 +- 支持选择父级、子级、同级元素 +- 支持遍历元素集合 +- 返回新的 Pandora 实例,支持链式调用 + +**示例**: ```javascript // eq(index) - 选择指定下标元素 $('.item').eq(0).text() +$('.item').eq(2).css('color', 'red') // child(name) - 选择子级元素 $('#box').child('.item') @@ -139,6 +244,7 @@ $('.item').parent() // siblings(name) - 选择同级元素 $('.item').siblings() +$('.item').siblings('.active') // prev() - 上一个同级元素 $('.item').prev() @@ -162,14 +268,23 @@ $('.item').each((el, index) => { ### 2.3 样式操作 +**功能说明**: +- 支持获取和设置元素样式 +- 支持获取元素位置和尺寸信息 +- 支持显示/隐藏元素 +- 支持淡入淡出动画效果 + +**示例**: ```javascript // css(name) - 获取样式 const color = $('#box').css('color') +const width = $('#box').css('width') // css({key: value}) - 设置样式 $('#box').css({ 'color': 'red', - 'font-size': '14px' + 'font-size': '14px', + 'background': '#f0f0f0' }) // show(callback) - 显示 @@ -181,7 +296,7 @@ $('#box').hide(() => console.log('隐藏完成')) // fadeIn(speed, callback) - 淡入 $('#box').fadeIn('fast') // fast: 快速 $('#box').fadeIn('slow') // slow: 慢速 -$('#box').fadeIn(5) // 自定义速度 +$('#box').fadeIn(5) // 自定义速度(数字) // fadeOut(speed, callback) - 淡出 $('#box').fadeOut('fast') @@ -193,6 +308,7 @@ const rect = $('#box').offset() // width(width) - 获取/设置宽度 const w = $('#box').width() $('#box').width('100px') +$('#box').width('50%') // height(height) - 获取/设置高度 const h = $('#box').height() @@ -203,6 +319,13 @@ $('#box').height('100px') ### 2.4 内容操作 +**功能说明**: +- 支持获取和设置元素的文本内容 +- 支持获取和设置元素的 HTML 内容 +- 支持获取和设置表单元素的值 +- 支持在元素内部追加或前置内容 + +**示例**: ```javascript // text(str) - 获取/设置文本 const txt = $('#box').text() @@ -235,6 +358,13 @@ $('#box').remove() ### 2.5 属性与类名操作 +**功能说明**: +- 支持获取和设置元素属性 +- 支持移除元素属性 +- 支持添加和移除 CSS 类名 +- 支持检查元素是否包含指定类名 + +**示例**: ```javascript // attr(name, value) - 获取/设置属性 const src = $('#img').attr('src') @@ -246,13 +376,14 @@ $('#box').removeAttr('data-id') // addClass(name) - 添加类名 $('#box').addClass('active') +$('#box').addClass('active hidden') // removeClass(name) - 移除类名 $('#box').removeClass('active') // hasClass(name) - 检查类名 if ($('#box').hasClass('active')) { - // ... + console.log('包含 active 类') } ``` @@ -260,6 +391,13 @@ if ($('#box').hasClass('active')) { ### 2.6 事件操作 +**功能说明**: +- 支持绑定和解绑事件 +- 支持点击、双击、长按等快捷事件 +- 支持主动触发事件 +- 支持焦点获取和失去 + +**示例**: ```javascript // bind(eventName, fn, options) - 绑定事件 $('#box').bind('click', function() { @@ -295,13 +433,25 @@ $('#box').taping( --- -## 3. 网络请求 +## 3️⃣ 网络请求 ### 3.1 ajax - AJAX 请求 +**功能说明**: +- 支持 GET 和 POST 请求 +- 支持同步和异步请求 +- 支持自定义请求头 +- 支持上传进度监听 +- 支持取消请求 + **使用方式**: ```javascript -$('#').ajax({ +$('#').ajax(config) +``` + +**参数说明**: +```javascript +{ url: '/api/data', // 接口地址 type: 'get', // 请求类型:get/post async: false, // 是否异步 @@ -320,7 +470,7 @@ $('#').ajax({ error: (err) => { // 失败回调 console.error(err) } -}) +} ``` **示例**: @@ -363,9 +513,20 @@ window.cancelAjax() ### 3.2 fetch - Fetch API 封装 +**功能说明**: +- 基于 Fetch API 的简洁封装 +- 支持 GET 和 POST 请求 +- 支持自定义返回数据格式化 +- 返回 Promise 对象 + **使用方式**: ```javascript -$('#').fetch({ +$('#').fetch(config) +``` + +**参数说明**: +```javascript +{ url: '/api/data', type: 'get', // get/post headers: { @@ -375,7 +536,7 @@ $('#').fetch({ returnData: (res) => { // 返回数据格式化 return res.json() } -}) +} ``` **示例**: @@ -397,41 +558,65 @@ $('#').fetch({ --- -## 4. 表单操作 +## 4️⃣ 表单操作 ### 4.1 serialize - 表单序列化 -**说明**:将表单数据转换为对象 +**功能说明**: +- 自动遍历表单内所有带 `name` 属性的元素 +- 自动处理 input、select、radio、checkbox 等不同类型 +- 返回键值对对象,便于发送到服务器 **示例**: ```javascript const formData = $('#form').serialize() -// { username: 'admin', password: '123456' } +// { username: 'admin', password: '123456', gender: 'male' } ``` --- ### 4.2 setForm - 设置表单值 +**功能说明**: +- 根据对象键名自动匹配表单元素的 `name` 属性 +- 自动处理 input、select、radio、checkbox 等不同类型 +- 快速填充表单数据 + **使用方式**: ```javascript +$('#form').setForm(obj) +``` + +**示例**: +```javascript $('#form').setForm({ username: 'admin', password: '123456', - gender: 'male' // radio + gender: 'male', // radio hobbies: ['reading'] // checkbox }) ``` --- -## 5. 模板渲染 +## 5️⃣ 模板渲染 ### 5.1 Mush - Mustache 模板渲染 +**功能说明**: +- 支持 `{{变量}}` 格式的模板语法 +- 支持数据响应式,数据变化自动更新视图 +- 提供生命周期回调(Init、Update) +- 简化前端数据绑定操作 + **使用方式**: ```javascript -$('#container').Mush({ +$('#container').Mush(config) +``` + +**参数说明**: +```javascript +{ data: { // 渲染数据 name: '张三', age: 18 @@ -442,20 +627,32 @@ $('#container').Mush({ Update: (data) => { // 每次更新完成 console.log('数据更新', data) } -}) +} ``` -**HTML 模板**: -```html +**示例**: +```javascript +// HTML 模板

姓名:{{name}}

年龄:{{age}}

-``` -**动态更新**: -```javascript -// 修改数据会自动更新视图 +// 初始化渲染 +$('#container').Mush({ + data: { + name: '张三', + age: 18 + }, + Init: (data) => { + console.log('初始渲染', data) + }, + Update: (data) => { + console.log('数据更新', data) + } +}) + +// 动态更新(会自动更新视图) $('#container').setData({ name: '李四' }) ``` @@ -463,6 +660,12 @@ $('#container').setData({ name: '李四' }) ### 5.2 全局数据管理 +**功能说明**: +- 提供全局数据存储机制 +- 支持设置和获取全局数据 +- 配合 Mush 模板实现数据共享 + +**示例**: ```javascript // setData - 设置全局数据 $('#box').setData({ @@ -478,22 +681,57 @@ const userInfo = $('#box').getData('userInfo') ### 5.3 template - 模板加载 +**功能说明**: +- 从 `