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

简介: 教程来源 http://qcycj.cn 本文档为jQuery UI开发指南,涵盖性能优化清单、交互组件(Draggable/Droppable)、微件(Accordion/Datepicker/Dialog)、效果库及Position定位工具等核心API详解与动态配置实例,助力高效构建响应式Web应用。

五、性能优化清单

为了确保 jQuery UI 项目始终保持流畅,建议定期进行以下检查:
image.png

六、常用 API 与实用工具

6.1 交互组件(Interactions)API 详解
6.1.1 Draggable(拖拽)完整方法列表
draggable() 不仅是一个简单的初始化函数,它返回的 jQuery 对象还暴露了一系列实用的方法,允许在运行时动态调整拖拽行为。
image.png
实例:动态调整拖拽限制区域

// 初始化时限制在父容器内
$(".drag-box").draggable({ containment: "#parent-box" });

// 运行时解除限制
$(".drag-box").draggable("option", "containment", false);

6.1.2 Droppable(放置目标)方法详解
image.png
实例:根据条件动态禁用放置区域

<div id="dropzone" class="drop-area">拖拽到这里</div>
<script>
    $("#dropzone").droppable({
        accept: ".drag-item",
        drop: (event, ui) => console.log("放置成功")
    });

    // 业务逻辑触发:暂时关闭此放置区
    $("#disableBtn").on("click", () => {
        $("#dropzone").droppable("disable");
        $("#dropzone").css("opacity", "0.5");
    });
</script>

6.2 微件组件(Widgets)API 详解
6.2.1 Accordion(手风琴)方法
image.png
实例:动态切换手风琴的激活面板

<div id="accordion">
    <h3>面板 1</h3><div>内容 1</div>
    <h3>面板 2</h3><div>内容 2</div>
</div>
<button id="nextBtn">展开下一个</button>

<script>
    let activeIdx = 0;
    $("#accordion").accordion();

    $("#nextBtn").on("click", () => {
        activeIdx = (activeIdx + 1) % 2;
        $("#accordion").accordion("option", "active", activeIdx);
    });
</script>

6.2.2 Datepicker(日期选择器)高级方法
image.png
实例:动态设置可选日期范围并刷新

$("#datepicker").datepicker({
    dateFormat: "yy-mm-dd",
    minDate: 0
});

$.get("/api/holidays").done((holidays) => {
    // 假设后端返回不可选的日期数组,动态设置最大日期为 30 天后
    $("#datepicker").datepicker("option", {
        maxDate: "+30d",
        beforeShowDay: (date) => {
            const ymd = $.datepicker.formatDate("yy-mm-dd", date);
            return [!holidays.includes(ymd)];
        }
    });
});

6.2.3 Dialog(对话框)高级使用方法
image.png
实例:动态设置 Dialog 标题和按钮

$("#confirmDialog").dialog({
    autoOpen: false,
    modal: true
});

function confirmAction(newTitle, confirmText, callback) {
    const dialog = $("#confirmDialog");
    dialog.dialog("option", {
        title: newTitle,
        buttons: [
            {
                text: confirmText,
                click: () => {
                    callback();
                    dialog.dialog("close");
                }
            },
            { text: "取消", click: () => dialog.dialog("close") }
        ]
    }).dialog("open");
}

$("#deleteBtn").on("click", () => {
    confirmAction("确认删除", "删除", () => {
        // 执行删除操作
        console.log("执行删除...");
    });
});

6.3 效果库(Effects)高级用法
6.3.1 内置效果与自定义效果
完整的内置效果列表:
image.png
image.png
自定义效果:通过 $.fn.effects.define 定义自己的动画。

$.fn.effects.define("flash", (options, element) => {
    const opts = $.extend({}, options, { mode: "show" });
    const $el = $(element);
    $el.css("opacity", 0).show().animate({ opacity: 1 }, opts.duration, opts.easing, () => {
        if ($.isFunction(opts.complete)) opts.complete.call(element);
    });
});

$("#myDiv").show("flash", 1000);

6.4 高级实用工具
6.4.1 位置工具(Position)
.position() 是 jQuery UI 最强大的实用工具之一,几乎所有的微件都在内部使用它来精确定位元素。它允许将任意元素相对于另一个元素(或窗口/文档)进行精确定位,同时完美处理滚动偏移和边界碰撞。

$("#tooltip").position({
    my: "left center",           // 目标元素对齐方式
    at: "right center",          // 相对于定位元素的哪个位置
    of: $("#targetElement"),     // 参考元素
    collision: "flip flip",      // 碰撞检测(边缘溢出时自动翻转)
    using: (pos, details) => {
        // 自定义定位函数,可用 css 直接应用
        $(this).css(pos);
    }
});

对齐方式参数详解:

水平关键字:left、center、right

垂直关键字:top、center、bottom

碰撞检测:collision 配置决定了当定位元素超出视口边界时的行为,值通常是两个单词(水平 + 垂直):

image.png
6.5 软依赖与组件优化
来源:http://oieaw.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 安全
前端组件库——Radix UI知识点大全(三)
教程来源 https://rvtst.cn/ Radix UI 是面向现代前端的无样式、高可访问性UI原语库。支持Tree Shaking、轻量Portal、CSS动画优化;提供灵活主题定制(手写CSS/Tailwind/shadcn/ui);采用复合组件、`asChild`、受控/非受控模式及完整TS支持,赋能开发者自由构建高质量界面。
|
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 前端开发 API
前端组件库——Element Plus知识点大全(一)
教程来源 https://tmywi.cn/category/lvxing.html Element Plus是饿了么团队打造的Vue 3官方UI库,深度集成TypeScript与Composition API,提供70+企业级组件、完善设计规范及主题定制能力。GitHub星标超2.5万,国内Vue 3中后台开发首选方案。
|
20天前
|
移动开发 JavaScript 前端开发
前端组件库——Vant 4知识点大全(一)
教程来源 http://yvyus.cn/ Vant 4 是面向 Vue 3 的轻量级移动端组件库,2022年12月发布,支持深色模式、5个新组件(如TimePicker、DatePicker)、体积更小(组件平均<1KB),零依赖、TypeScript 全面支持,GitHub 星标超2.2万,国内H5开发事实标准。

热门文章

最新文章