Minjs 极简轻量级纯 JavaScript 组件库

发布于 2020-02-26 15:17:05 字数 6208 浏览 1387 评论 0

Minjs 是一组轻量级的 jQuery 组件,提供多种 Web 常用组件,包括表单、表格、日历等,其中迷你表单帮助你使用 HTML5 表单增强,尽管浏览器不一定支持也可以使用。

特点

极小

别挡着你的路。它并不规定如何设计UI。它试图对它正在运行的 HTML 或 CSS 的布局不作任何假设。

模块化

minjs 不是一个框架。它是一个独立组件的集合。只使用你需要的。每个组件也不依赖于任何框架或库:它们都是纯JS。

测试

每个 Minjs 组件都是为 词汇。他们已经在那里(和其他地方)跑了好几年了。

Minform

HTML 5 表单增强

minform允许您使用一些HTML 5表单增强,即使浏览器不支持它们。

<form id="minform-ex" method="GET" action="">
  <input name="placeholder" placeholder="Placeheld Text">
  <input name="autofocus" autofocus>
  <input name="required" required>
  <input type="submit">
</form>
<script type="text/javascript">
  minform(document.getElementById('minform-ex'));
</script>

Download 485 bytes min+gz
Source on GitHub

longtable

Long table 接受现有的 HTML 表并将其转换为分页的表。不需要担心 Ajax 等等。造型是由你决定的。

<table id="jsversions">
  <thead>
    <tr><th>JavaScript Version</th><th>Release Date</th></tr>
  </thead>
  <tbody>
    <tr><td>1.0</td><td>March 1996</td></tr>
    <tr><td>1.1</td><td>August 1996</td></tr>
    <tr><td>1.2</td><td>June 1997</td></tr>
    <tr><td>1.3</td><td>October 1998</td></tr>
    <tr><td>1.4</td><td>?</td></tr>
    <tr><td>1.5</td><td>November 2000</td></tr>
    <tr><td>1.6</td><td>November 2005</td></tr>
    <tr><td>1.7</td><td>October 2006</td></tr>
    <tr><td>1.8</td><td>June 2008</td></tr>
    <tr><td>1.8.1</td><td>?</td></tr>
    <tr><td>1.8.2</td><td>June 22, 2009</td></tr>
    <tr><td>1.8.5</td><td>July 27, 2010</td></tr>
  </tbody>
</table>
<script type="text/javascript">
  longtable(document.getElementById('jsversions'), {'perPage': 5});
</script>
<style type="text/css">
  .paging-controls {text-align: center;}
  .paging-controls a {color: green;}
  .paging-controls a:visited {color: #0069D6;}
  .paging-controls .prev {float: left;}
  .paging-controls .prev:before {content: "< prev";}
  .paging-controls .next {float: right;}
  .paging-controls .next:after {content: "next >";}
  .paging-controls .elipsis:before {content: " ... ";}
</style>

Download 975 bytes min+gz
Source on GitHub

日历

一个简单的日历建设者

找不到像你想要的样子和行为的日历吗?drcal提供了一个最小的日历生成器。它处理日期计算和其他一些基本任务,并将行为和样式留给您。

<div id="drcal1"></div>
<script type="text/javascript">
  var cal = drcal();
  cal.addEventListener('drcal.renderDay', function (event) {
    event.detail.element.appendChild(document.createTextNode(event.detail.date.getDate()));
  });
  cal.changeMonth(new Date());
  document.getElementById('drcal1').appendChild(cal);
</script>

Download 1126 bytes min+gz
Source on GitHub

更好的例子

<div id="drcal2"></div>
<script type="text/javascript">
  var cal = drcal();
  cal.addEventListener('drcal.renderDay', function (event) {
    var dayNum = document.createElement('div');
    dayNum.className = 'daynum';
    dayNum.appendChild(document.createTextNode(event.detail.date.getDate()));
    var div = document.createElement('div');
    div.appendChild(dayNum);
    event.detail.element.appendChild(div);
  });
  cal.changeMonth(new Date());
  selected = null;
  cal.addEventListener('click', function (event) {
    if (event.target.tagName === 'DIV') {
      event.preventDefault();
      if (selected) selected.className = '';
      selected = event.target;
      selected.className = 'selected';
    }
  });
  // Twitter Bootstap removes default styling
  var buttons = cal.querySelectorAll('button');
  for (var i = 0; i < buttons.length; i++) {
    buttons[i].className += ' btn';
  }
  document.getElementById('drcal2').appendChild(cal);
</script>
<style type="text/css">
#drcal2 .calendar {border-collapse: collapse;}
#drcal2 .calendar th {text-align: center;}
#drcal2 .calendar td {
  border: 1px solid #AEAEAE;
  width: 6em;
  height: 5em;
  padding: 0;
}
#drcal2 .calendar td > div {
  width: 100%;
  height: 100%;
  position: relative;
  cursor: pointer;
}
#drcal2 .calendar thead tr:first-child th {
  font-size: large;
  padding-bottom: 0.5em;
}
#drcal2 .calendar thead tr:last-child th {
  font-weight: normal;
  font-size: small;
  color: #939393;
}
#drcal2 .calendar .prev {float: left;}
#drcal2 .calendar .prev:before {content: "<";}
#drcal2 .calendar .next {float: right;}
#drcal2 .calendar .next:after {content: ">";}
#drcal2 .calendar .today, .calendar .today.selected { background-color: #E9EFF8;}
#drcal2 .calendar .selected {background-color: #F3F3F3;}
#drcal2 .calendar .extra {color: #AEAEAE;}
#drcal2 .calendar .daynum {
  position: absolute;
  top: 0.5ex;
  right: 0.5ex;
}
</style>

文件大小的计算方法是首先将源缩小为 uglifyjs --mangle --screw-ie8 然后拉链。这是在使用小型化版本时可以期望从服务器传输到浏览器的数据量。

相关链接

官网:http://www.minjs.com

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文