UNPKG

1.29 kBJavaScriptView Raw
1(function () {
2 function ready(fn) {
3 if (document.addEventListener) {
4 document.addEventListener('DOMContentLoaded', fn);
5 } else {
6 document.attachEvent('onreadystatechange', function() {
7 if (document.readyState === 'interactive') fn();
8 });
9 }
10 }
11
12 // create expando buttons
13 ready(function () {
14 var codes = document.querySelectorAll('.sg-example .sg-code');
15
16 for (var i = codes.length-1; i >= 0; i--) {
17 var code = codes[i];
18 var parent = code.parentNode;
19 addButton(parent, code);
20 }
21 });
22
23 function addButton (parent, code) {
24 // hide the <pre>
25 code.className += ' sg-hidden';
26
27 // create the <button>
28 var btn = document.createElement('button');
29 btn.className = 'sg-expando sg-expando-reveal';
30 parent.appendChild(btn);
31
32 btn.addEventListener('click', function () {
33 if (~code.className.indexOf('sg-hidden')) {
34 code.className = code.className.replace('sg-hidden', 'sg-visible');
35 btn.className = btn.className.replace('sg-expando-reveal', 'sg-expando-contract');
36 } else {
37 code.className = code.className.replace('sg-visible', 'sg-hidden');
38 btn.className = btn.className.replace('sg-expando-contract', 'sg-expando-reveal');
39 }
40 });
41 }
42
43})();