cd.js

以一种似乎简单的方式创造DOM

最近在写 bp-player ,在项目中遇到了需要制作一个右键菜单栏的问题,然后我前后写了两次才写出来,其中发现构建一个DOM挺麻烦的,于是自己写着写着就成了现在的cd.js,那么这个然并卵的轮子到底怎么用呢?

首先下载源码……

https://github.com/VecHK/bp-player/blob/master/script/cd.js

其次加载进来……

调用的话只需用$c就行了

1
2
3
4
5
6
7
8
9
10
11
let ele = $c('div');
//返回一个div标签,等效于 document.createElement('div');
let source = $c('div');
$(source) === source; //true
//如果以一个DOM节点作为参数传入则返回这个DOM节点

好,讲完 三分之二 的内容了(你在逗我)

如果传入的是一个纯对象[1]的话

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$c({
id: 'this-is-id',
class: 'girigiri',
html: '<b>哦是么这不是一个粗体字</b>',
tag: 'main',
event: {
'click': function (){
alert('你点到我了,赔钱');
}
},
css: `
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
background: rgba(255, 255, 255, 0.5);
`
});
  • 当然,这个对象还包括 text,只是我没写。
  • 当然,这个对象的html属性还可以是 DOM元素,也还可以是个纯对象(这样的话就是递归了)
  • 当然,class还可以写成数组的形式……
  • 当然,tag还可以是DOM,如果是DOM的话直接就在这个DOM上进行 DOM构建
  • 当然,我也不会说css还支持对象的写法[2]

  1. 说起来数组也是个对象,DOM也是个对象,这里的纯对象指 既不是数组也不是DOM 的对象 ↩︎

  2. 比如 css: { display: 'none' } ↩︎