-
Notifications
You must be signed in to change notification settings - Fork 0
/
RoundedCorners.js
51 lines (45 loc) · 1.61 KB
/
RoundedCorners.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*
** RoundedCorners script by Jason Johnston (jj@lojjic.net)
** Created August 2003. Use freely, but give me credit.
**
** This script adds corners to a specified element. The
** corners can be styled with CSS to provide rounded corners.
*/
function RoundedCorners(elt) {
this.element = elt;
this.create();
}
RoundedCorners.prototype = {
create : function() {
var i, c, props;
var elt = this.element;
this.corners = [];
function gCS(prop) {
return document.defaultView.getComputedStyle(elt, null).getPropertyValue(prop);
}
//create inner container
var inner = this.inner = document.createElement("div");
props = ["top","left","bottom","right"];
for(i in props) inner.style["padding" + props[i].charAt(0).toUpperCase() + props[i].substring(1)] = gCS("padding-" + props[i]);
elt.style.padding = "0px";
while(elt.lastChild) inner.appendChild(elt.lastChild);
//create corners
props = [["top","left"],["top","right"],["bottom","left"],["bottom","right"]];
for(i=0; i<props.length; i++) {
c = this.corners[i] = document.createElement("div");
c.className = "rounded-corner " + props[i][0] + "-" + props[i][1];
(i==0 ? elt : this.corners[i-1]).appendChild(c);
}
this.corners[props.length-1].appendChild(inner);
elt.appendChild(this.corners[0]);
},
destroy : function() {
var elt = this.element;
//for(var i in this.corners) elt.removeChild(this.corners[i]);
//elt.style.position = "";
while(this.inner.lastChild) elt.appendChild(this.inner.lastChild);
elt.removeChild(this.corners[0]);
elt.style.padding = "";
}
};
RoundedCorners.scriptSheetSelector = ".rounded-corners";