前端组件库—— jQuery UI 知识点大全(二)

简介: 教程来源 http://unbgv.cn jQuery UI 是基于 jQuery 的开源 UI 库,核心含三大模块:交互(Draggable/Sortable 等)、微件(Accordion/Datepicker/Dialog 等)和特效(show/hide 动画、颜色过渡等),支持主题定制(ThemeRoller)、事件委托与性能优化,助力构建高交互、无障碍、视觉统一的 Web 应用。

三、核心组件体系

jQuery UI 主要分为三大模块:交互(Interactions)、微件(Widgets)和效果库(Effects)。

3.1 交互组件(Interactions)
image.png
Draggable 常用代码示例:

$(".drag-item").draggable({
    axis: "x",                    // 只能水平拖动
    containment: "#container",    // 限制在父容器范围内
    grid: [50, 50],               // 拖动时按 50px 对齐
    opacity: 0.5,                 // 拖拽时半透明
    revert: "invalid",            // 放置失败时动画还原
    stack: ".drag-item"           // 确保拖拽时前置
});

Sortable 常用配置:

$("#sortable-list").sortable({
    placeholder: "ui-state-highlight",  // 拖拽时的占位符样式
    revert: 300,                         // 回退动画时长
    tolerance: "pointer",                // 鼠标指针位置决定排序
    connectWith: "#other-list",          // 允许跨列表拖拽
    update: (event, ui) => {
        // 监听排序后的更新,通常用于保存新的顺序
        const newOrder = $(this).sortable("toArray");
        console.log("新的顺序:", newOrder);
    }
});

3.2 微件组件(Widgets)
微件是 jQuery UI 中功能最丰富的部分,提供了即插即用的高级界面元素。
image.png
Accordion 手风琴菜单示例:

<div id="accordion">
    <h3>标题 1</h3>
    <div>内容 1...</div>
    <h3>标题 2</h3>
    <div>内容 2...</div>
    <h3>标题 3</h3>
    <div>内容 3...</div>
</div>

<script>
    $("#accordion").accordion({
        collapsible: true,    // 允许全部折叠
        active: false,        // 默认全部折叠
        heightStyle: "content" // 根据内容适应高度
    });
</script>

Datepicker 日期选择器示例:

$("#datepicker").datepicker({
    dateFormat: "yy-mm-dd",
    minDate: 0,                    // 只能选今天及以后
    showAnim: "slideDown",
    showButtonPanel: true,
    onSelect: (dateText) => {
        console.log("选中了日期:", dateText);
    }
});

Dialog 对话框的高级用法——自定义位置:

$("#mydialog").dialog({
    my: "center top",          // 元素对齐方式
    at: "center top+75",       // 目标位置偏移量(像素)
    of: "#mycontainer",        // 相对于父容器定位
    draggable: true,
    resizable: false,
    modal: true,
    buttons: {
        "确认": () => {
            alert("确认");
            $(this).dialog("close");
        },
        "取消": () => $(this).dialog("close")
    }
});

3.3 效果库与动画(Effects)
jQuery UI 在原生 animate() 的基础上,增加了一系列高级视觉效果,极大地提升了用户体验。
image.png
image.png
使用内置效果切换显示/隐藏:

// 使用 drop 效果显示元素
$(".element").show("drop", { direction: "up" }, 500);

// 使用 explode 效果隐藏
$(".element").hide("explode", { pieces: 16 }, 1000);

// 切换显示/隐藏
$(".element").toggle("bounce", { times: 3 }, 500);

运行回调:所有效果函数都支持在动画完成后执行回调:

$("#new-item").show("slide", 300, () => {
    console.log("动画展示完成!");
});

颜色动画:在 jQuery UI 的支持下,你可以动画过渡颜色属性(需要导入 jquery-ui-effect.js):

$(".box").animate({
    backgroundColor: "#ff0000",
    color: "#ffffff"
}, 1000);

四、开发配置与高级运维

4.1 主题定制与 ThemeRoller
jQuery UI 的一大亮点是其强大的主题系统,允许用户轻松改变 UI 的整体风格,而不必逐一手动修改 CSS。

ThemeRoller 的核心参数包括:

Font settings:字体和文字样式

Corner radius:各组件圆角的弧度

Header/Toolbar:头部和工具栏样式

Content:内容区域样式

Clickable default state:按钮/链接默认状态颜色

Clickable hover state:鼠标悬停样式

Clickable active state:点击激活样式

Highlight:高亮元素的配色

Error:错误信息的提示色

Drop shadows:阴影效果

使用 ThemeRoller 生成主题的步骤如下:

访问 ThemeRoller 工具:打开 jQuery UI 官网的 ThemeRoller 页面

定制视觉样式:在左侧面板中调整字体、圆角、颜色等参数

下载主题包:点击下载按钮获取包含 CSS 和图片文件的统一主题包

集成到项目中:将下载的主题 CSS 链接放置到 jQuery UI 默认样式之后

在项目中使用自定义主题:

<!-- 默认样式(主题适配的基石) -->
<link href="css/green-theme/jquery-ui.css" rel="stylesheet" />

4.2 事件委托与性能优化(高频交互场景)
在高频交互或动态渲染场景中,页面容易出现卡顿(回流)、点击失效(事件丢失)或内存泄漏。

核心优化策略一:使用事件委托

不要对动态生成的元素直接绑定事件,而是绑定在常驻的父容器上:

// ❌ 错误:直接绑定在动态生成的子元素上,元素重建后事件会丢失
$('.dynamic-btn').click(fn);

// ✅ 正确:绑定在常驻父容器上,事件委托自动处理新生成的元素
$('#static-container').on('click', '.dynamic-btn', fn);

使用命名空间可以避免 .off() 误杀其他插件的事件:

// 绑定时使用命名空间
$(document).on('click.myModule', '.js-fetch-item', handler);
// 解绑时只移除特定命名空间
$(document).off('.myModule');

核心优化策略二:遏制回流与重绘(Reflow)

节流与防抖:对于 scroll、resize 或高频点击,必须包裹 throttle 或 debounce 函数

// 简易节流函数
function throttle(fn, wait) {
    let last = 0;
    return function() {
        const now = Date.now();
        if (now - last >= wait) {
            fn.apply(this, arguments);
            last = now;
        }
    };
}

// 应用于滚动事件
$(window).on('scroll', throttle(() => {
    console.log('滚动触发');
}, 200));

核心优化策略三:批量操作 DOM

避免在循环中频繁操作 DOM,应将修改集中处理:

// ❌ 错误:循环中反复 append
for (let i = 0; i < 100; i++) {
    $('#list').append(`<li>Item ${i}</li>`);
}

// ✅ 正确:批量一次插入
let html = '';
for (let i = 0; i < 100; i++) {
    html += `\n<li>Item ${i}</li>`;
}
$('#list').append(html);

来源:
http://htnus.cn

相关文章
|
22天前
|
前端开发 JavaScript API
前端组件库Layui知识点大全(一)
教程来源 https://hllft.cn/category/artificial-intelligence.html Layui是由国内开发者“贤心”于2016年推出的开源前端UI框架,秉持“返璞归真”理念,不依赖Webpack等工程化工具,基于原生HTML/CSS/JS与轻量模块化规范,专为后端开发者、初学者及追求高效开发的群体设计,低门槛、拿来即用。
|
11天前
|
编解码 数据可视化 前端开发
前端组件库——DataV知识点大全(二)
教程来源 https://www.xbivx.cn DataV提供40+高质量组件,涵盖边框(13种SVG动画边框)、装饰、数字翻牌器、滚动表格、水位图、锥形柱图、飞线图及全屏容器等,支持高度自定义与响应式适配,助力快速构建专业数据大屏。
|
11天前
|
资源调度 数据可视化 前端开发
前端组件库——DataV知识点大全(一)
教程来源 https://www.wkmsa.cn DataV是专注大屏可视化的开源Vue组件库,提供丰富SVG边框、装饰与图表组件,助力快速构建震撼数据看板。基于Vue3+TS重构,支持主题定制与按需引入;3.0版将集成WebGPU,性能提升47%。开箱即用,大幅降低开发门槛。
|
12天前
|
移动开发 JavaScript 前端开发
前端组件库——Wot Design Uni知识点大全(一)
教程来源 https://zlpow.cn Wot Design Uni 是基于 Vue3 + TypeScript 的开源 uni-app UI 组件库,提供 70+ 高质量移动端组件,支持微信/支付宝小程序、H5、App 等多端兼容,内置暗黑模式、国际化(15+语言)与 CSS 变量主题定制,大幅提升跨平台开发效率。
|
12天前
|
JSON 小程序 前端开发
前端组件库——Vant Weapp知识点大全
教程来源 http://oplhc.cn/ Vant Weapp是有赞官方打造的高星(1.1w+)微信小程序UI组件库,轻量、稳定、高性能,含50+组件与CSS变量主题系统,支持按需引入与深度定制,是小程序开发首选开源UI方案。
|
15天前
|
人工智能 前端开发 JavaScript
前端组件库——shadcn/ui知识点大全(三)
教程来源 http://lemci.cn/ shadcn/ui通过Tree Shaking、动态导入、Tailwind JIT等实现极致性能优化,Bundle仅增20–50KB;组件即代码,完全可控、可定制、易维护,契合Next.js+Tailwind现代栈与AI协作开发。
|
15天前
|
前端开发 JavaScript 数据可视化
前端组件库——Radix UI知识点大全(一)
教程来源 https://bncne.cn/ Radix UI是React生态中革命性的无样式组件原语库,专注提供高可访问性、键盘导航完备、ARIA合规的底层交互逻辑,将样式完全交由开发者掌控,完美平衡定制自由与无障碍标准,已成为shadcn/ui等主流工具的底层基石。
|
20天前
|
JavaScript 前端开发 安全
前端组件库——Naive UI知识点大全(一)
教程来源 https://hllft.cn/category/artificial-intelligence.html Naive UI是Vue 3 + TypeScript现代化UI库,由图森未来开源。主打轻量、高性能、零CSS导入、全组件Tree Shaking及类型安全主题系统,已获GitHub 1.5w+ Star,适合追求开发体验与性能的中后台项目。
|
20天前
|
JavaScript 前端开发 API
前端组件库——Element Plus知识点大全(一)
教程来源 https://tmywi.cn/category/lvxing.html Element Plus是饿了么团队打造的Vue 3官方UI库,深度集成TypeScript与Composition API,提供70+企业级组件、完善设计规范及主题定制能力。GitHub星标超2.5万,国内Vue 3中后台开发首选方案。
|
19天前
|
前端开发 JavaScript 开发者
前端组件库——Material UI知识点大全(一)
教程来源 http://lemci.cn/category/shxlx.html Material UI(MUI)是React生态中最流行、最专业的Material Design实现,提供50+高质量组件、强大主题定制、完善可访问性及丰富生态(图标库、Data Grid等),GitHub超9万Star,周下载量超400万次,v5+全面支持React 18与现代工具链。

热门文章

最新文章