-
Notifications
You must be signed in to change notification settings - Fork 1
/
main.js
41 lines (32 loc) · 1.12 KB
/
main.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
(function(){
'use strict';
/**
* Trigger Features
*/
var CHECKBOX_CLASS = 'js-checkbox';
var checkboxes = document.querySelectorAll("." + CHECKBOX_CLASS);
checkboxes.forEach(function(checkbox){
checkbox.addEventListener('change', function(){
var feature = checkbox.id.slice(3); // trim cb- from id
var strings = document.querySelectorAll('.' + feature);
strings.forEach(function (string) {
var activeClass = feature + '-on';
var hasClass = string.classList.contains(activeClass);
string.classList[hasClass ? 'remove' : 'add'](activeClass);
});
});
});
/**
* Trigger Font Families
*/
var FF_RADIOS = document.querySelectorAll('input[type="radio"][name="fontfamily"]');
var FF_NAME = document.querySelector('.js-font-name');
FF_RADIOS.forEach(function(radio) {
radio.addEventListener('change', function(selector) {
var fontFamily = selector.target.value;
document.documentElement.classList = '';
document.documentElement.classList.add('font-' + fontFamily);
FF_NAME.textContent = fontFamily.toUpperCase();
});
});
})();