Skip to content

@mt-kit/components

npm versionGitHub starsGitHub issuesLicenseDocumentation

常用 JavaScript UI 组件库,提供 CSS 三角形生成、错误提示覆盖层、元素拖拽等功能。

安装

bash
npm i @mt-kit/components

API

cssGenerateTriangle

生成 CSS 三角形的样式字符串。

参数:

参数名说明类型是否必传默认值
color三角形颜色string-
size三角形大小(像素)number-
direction三角形方向"top" | "bottom" | "left" | "right""bottom"

返回值: string - CSS 样式字符串

使用示例:

ts
import { cssGenerateTriangle } from "@mt-kit/components";

// 生成红色向下三角形样式(默认)
const triangleStyle = cssGenerateTriangle("red", 10);

// 生成向上三角形
const triangleTop = cssGenerateTriangle("blue", 15, "top");

// 在 HTML 中使用
const div = document.createElement('div');
div.setAttribute('style', triangleStyle);
document.body.appendChild(div);

imitationViteError

生成一个类似 Vite 报错的错误覆盖层。

参数:

参数名说明类型是否必传默认值
err错误对象或错误信息Error | string-
dialog是否以对话框形式显示booleanfalse

返回值: HTMLElement - 错误覆盖层 DOM 元素

使用示例:

ts
import { imitationViteError } from '@mt-kit/components';

// 创建错误覆盖层
const overlay = imitationViteError(err);

// 添加到页面
document.body.appendChild(overlay);

// 或添加到指定元素
const container = document.querySelector('.container');
container?.appendChild(overlay);

效果预览:

ErrorOverlay

draggable

使 DOM 元素可拖拽。

参数:

参数名说明类型是否必传默认值
el要拖拽的 DOM 元素Element-
overflow是否允许拖出边界booleanfalse
options配置选项IOptions-
options.observer是否使用 IntersectionObserver 监听元素可见性booleanfalse

返回值: ITransform \| IDraggable - 元素位置信息或包含 offDraggable 方法的对象

注意: 使用前需要设置 html, body { height: 100%; width: 100%; overflow: hidden; }

使用示例:

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>demo-draggable</title>
  <style>
    html, body {
      height: 100%;
      width: 100%;
      overflow: hidden;
      margin: 0;
    }
    div {
      display: inline-block;
      position: relative;
    }
  </style>
</head>
<body>
  <div>
    <div class="demo-draggable-test01">拖动1</div>
    <div class="demo-draggable-test02">拖动2</div>
  </div>
</body>
</html>
<script type="module">
  import { draggable } from '@mt-kit/components';
  
  // 普通拖拽(不允许拖出边界)
  const el = document.querySelector(".demo-draggable-test01");
  draggable(el);
  
  // 允许拖出边界
  const el2 = document.querySelector(".demo-draggable-test02");
  draggable(el2, true);
</script>

基于 MIT 许可发布