mcpField
S
syncfusion-javascript-popups

syncfusion-javascript-popups

github.com/syncfusion开发073 次安装1 周前更新
代码仓库

关于 syncfusion-javascript-popups

syncfusion-javascript-popups 是面向 JavaScript 和 TypeScript 开发者的 Syncfusion EJ2 弹出式 UI 组件技能,涵盖对话框、预设对话框和工具提示,并提供用法与无障碍指南。

主要功能

  1. 01模态与非模态对话框
  2. 02提示、确认和输入对话框
  3. 03悬停、聚焦或点击触发工具提示
  4. 04动画、拖动和调整尺寸
  5. 05键盘交互与无障碍支持
  6. 06多种主题样式

适用场景

  1. 01为操作添加确认或提醒
  2. 02在表单字段聚焦时显示提示
  3. 03为页面元素展示上下文说明

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/javascript-ui-controls-skills --skill syncfusion-javascript-popups

安装后在 Claude Code 中输入/syncfusion-javascript-popups确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
dialog-accessibility.md
dialog-api.md
dialog-dialog-utility.md
dialog-events.md
dialog-features.md
dialog-getting-started.md
dialog-how-to.md
dialog-templates.md
predefineddialog-animation.md
predefineddialog-api.md
predefineddialog-customization.md
predefineddialog-dimension.md
predefineddialog-draggable.md
predefineddialog-getting-started.md
predefineddialog-position.md
tooltip-accessibility.md
tooltip-animation.md
tooltip-api.md
tooltip-content.md
tooltip-customization.md
tooltip-getting-started.md
tooltip-how-to.md
tooltip-open-mode.md
tooltip-position.md

详细介绍

Syncfusion EJ2 JavaScript 弹出窗口

概述

Syncfusion EJ2 JavaScript 弹出窗口库提供了三个用于构建交互式覆盖层内容的核心 UI 组件。每个组件都附有完整文档,包含 TypeScript/JavaScript 示例、无障碍指南和常见用法模式。

所有组件均支持:

  • **无障碍:**符合 WCAG 2.2 AA 级、Section 508 和 ADA 标准
  • **主题:**Material 3、Bootstrap 5、Fluent、Tailwind 3、Fabric
  • **API:**支持完整事件的命令式 TypeScript/JavaScript
  • **键盘:**完整的键盘导航和交互

组件概览

快速导航
组件用途包文件
对话框带模板的模态/非模态对话框ej2-popups8
预定义对话框通过 DialogUtility 提供警告/确认/提示ej2-popups7
工具提示在悬停/聚焦/点击时显示上下文弹出内容ej2-popups9

包: @syncfusion/ej2-popups


对话框组件

**用途:**在主页面上方的覆盖窗口中显示内容,支持模态/非模态模式、自定义模板、操作按钮、动画、拖动、调整大小,以及内置实用对话框(警告/确认)。

包: @syncfusion/ej2-popups

快速示例
import { Dialog } from '@syncfusion/ej2-popups';
import { enableRipple } from '@syncfusion/ej2-base';

enableRipple(true);

let dialog: Dialog = new Dialog({
  header: 'Welcome',
  content: 'This is a simple dialog.',
  showCloseIcon: true,
  width: '350px',
  target: document.body,
  buttons: [
    {
      buttonModel: { content: 'OK', isPrimary: true },
      click: () => { dialog.hide(); }
    }
  ]
});
dialog.appendTo('#dialog');
文档

预定义对话框组件

**用途:**通过 DialogUtility 类打开的命令式警告、确认和提示对话框。无需组件实例,非常适合简单通知和用户确认。

包: @syncfusion/ej2-popups

快速示例 - 警告
import { DialogUtility } from '@syncfusion/ej2-popups';

let dialogObj: any = DialogUtility.alert({
  title: 'Low Battery',
  content: '10% of battery remaining',
  width: '250px',
  okButton: { click: () => dialogObj.hide() }
});
快速示例 - 确认
import { DialogUtility } from '@syncfusion/ej2-popups';

let dialogObj: any = DialogUtility.confirm({
  title: 'Delete File',
  content: 'Are you sure you want to delete this file?',
  okButton: { 
    text: 'Delete',
    click: () => { /* delete logic */ dialogObj.hide(); }
  },
  cancelButton: { 
    text: 'Cancel',
    click: () => dialogObj.hide() 
  }
});
快速示例 - 提示
import { DialogUtility } from '@syncfusion/ej2-popups';

let dialogObj: any = DialogUtility.confirm({
  title: 'Enter Name',
  content: '<input id="nameInput" class="e-input" placeholder="Your name" />',
  okButton: {
    text: 'Submit',
    click: () => {
      const name: string = (document.getElementById('nameInput') as HTMLInputElement).value;
      console.log('Name:', name);
      dialogObj.hide();
    }
  }
});
文档

工具提示组件

**用途:**当用户悬停、聚焦或点击目标元素时,显示上下文弹出信息。支持 12 种位置、多种打开模式、动画、自定义内容和完整的无障碍支持。

包: @syncfusion/ej2-popups

快速示例
import { Tooltip } from '@syncfusion/ej2-popups';

let tooltip: Tooltip = new Tooltip({
  content: 'Tooltip Content',
  position: 'TopCenter'
});
tooltip.appendTo('#target');
快速示例 - 多个目标
import { Tooltip } from '@syncfusion/ej2-popups';

let tooltip: Tooltip = new Tooltip({
  target: '.e-info',
  position: 'RightCenter'
});
tooltip.appendTo('#container');

HTML:

<div id="container">
  <input type="text" class="e-info" title="Please enter your name" />
  <input type="email" class="e-info" title="Enter a valid email address" />
</div>
文档

安装和设置

安装软件包
npm install @syncfusion/[email protected] --save
npm audit
添加 CSS 主题导入
/* src/styles.css */
@import '../node_modules/@syncfusion/ej2-base/styles/tailwind3.css';
@import '../node_modules/@syncfusion/ej2-buttons/styles/tailwind3.css';
@import '../node_modules/@syncfusion/ej2-popups/styles/tailwind3.css';

其他可用主题:material.css、bootstrap5.css、fluent.css、fabric.css


常见模式

带确认功能的模态对话框
import { Dialog } from '@syncfusion/ej2-popups';

let dialog: Dialog = new Dialog({
  header: 'Confirm Action',
  content: 'Are you sure you want to proceed?',
  isModal: true,
  showCloseIcon: true,
  width: '400px',
  target: document.body,
  buttons: [
    { buttonModel: { content: 'Yes', isPrimary: true }, click: () => { /* action */ dialog.hide(); } },
    { buttonModel: { content: 'No', cssClass: 'e-flat' }, click: () => dialog.hide() }
  ]
});
dialog.appendTo('#dialog');
快速警告通知
import { DialogUtility } from '@syncfusion/ej2-popups';

DialogUtility.alert('Operation completed successfully!');
表单验证提示框
import { Tooltip } from '@syncfusion/ej2-popups';

let emailTooltip: Tooltip = new Tooltip({
  content: 'Please enter a valid email address',
  position: 'RightCenter',
  opensOn: 'Focus'
});
emailTooltip.appendTo('#email');
可拖动对话框
import { DialogUtility } from '@syncfusion/ej2-popups';

let dialogObj: any = DialogUtility.alert({
  title: 'Draggable',
  content: 'Drag me by the header',
  isDraggable: true,
  okButton: { click: () => dialogObj.hide() }
});
在禁用元素上显示提示框
import { Tooltip } from '@syncfusion/ej2-popups';

let tooltip: Tooltip = new Tooltip({
  content: 'This feature is currently disabled',
  position: 'TopCenter'
});
tooltip.appendTo('#disabled-wrapper');

HTML:

<span id="disabled-wrapper" style="display: inline-block;">
  <button class="e-btn" disabled>Disabled</button>
</span>

主题支持

所有弹出组件均支持以下主题:

主题CSS 文件
Material 3material.css
Bootstrap 5bootstrap5.css
Fluentfluent.css
Tailwind 3tailwind3.css
Fabricfabric.css

无障碍访问

所有弹出组件均符合 WCAG 2.2 AA 级、Section 508 和 ADA 标准。

对话框无障碍访问
  • WAI-ARIA 角色和属性
  • 键盘导航(Tab、Enter、Escape)
  • 焦点管理
  • 屏幕阅读器支持
预定义对话框无障碍访问
  • 继承对话框的无障碍功能
  • 警告、确认和提示模式遵循 ARIA 最佳实践
  • 所有按钮均支持键盘导航
提示框无障碍访问
  • 使用 role="tooltip" 和 aria-describedby
  • 使用 aria-hidden 表示可见状态
  • 键盘支持(按 Escape 关闭,聚焦时打开)
  • 屏幕阅读器播报
  • 遵循 prefers-reduced-motion 设置

浏览器支持

  • Chrome(最新版)
  • Firefox(最新版)
  • Safari(最新版)
  • Edge(最新版)
  • Internet Explorer 11(需使用 polyfill)

版本兼容性

Syncfusion EJ2 版本状态
33.x.x当前版本(推荐)
32.x.x支持
31.x.x支持
< 30.x.x旧版

快速参考

需求组件方法/属性
模态对话框DialogisModal: true
可拖动对话框DialogallowDragging: true
可调整大小的对话框DialogenableResize: true
快速警告Predefined DialogDialogUtility.alert()
快速确认Predefined DialogDialogUtility.confirm()
输入提示Predefined Dialog使用 <input> 的 DialogUtility.confirm()
悬停时显示提示框TooltipopensOn: 'Hover'
聚焦时显示提示框TooltipopensOn: 'Focus'
固定提示框TooltipisSticky: true
多个提示框Tooltiptarget: '.class-selector'

状态: ✅ 可用于生产环境
质量评级: 9+/10(专业级)
覆盖范围: 3 个组件,24 个参考文件

评论

支持 Markdown