scale_fonts.html (1787B)
1 <script>
2
3 // set font sizes as constant
4 const size_small = "75%";
5 const size_medium = "100%";
6 const size_large = "125%";
7
8 // Function that adds menu entries for font size scalers
9 function add_menu_entries() {
10
11 // search TOC navigation
12 var nav = document.querySelector("nav#TOC");
13
14 // create buttons
15 var small = create_scale_button(size_small, "Small");
16 var medium = create_scale_button(size_medium, "Medium");
17 var large = create_scale_button(size_large, "Large");
18
19 // add buttons to menu
20 nav.querySelector("ul").appendChild(small);
21 nav.querySelector("ul").appendChild(medium);
22 nav.querySelector("ul").appendChild(large);
23 }
24
25 // Function that creates font size scaler button
26 function create_scale_button(size, label) {
27
28 // create list item and companion anchor
29 var list = document.createElement("li");
30 var anchor = document.createElement("a");
31
32 // add function and label
33 anchor.href = "javascript:scale_fonts('" + size +"');";
34 anchor.innerText = label;
35
36 // add anchor to list object
37 list.appendChild(anchor);
38
39 // return object
40 return(list);
41 }
42
43 // Function that scales font sizes
44 function scale_fonts(size) {
45 document.querySelector("body").style = "font-size:" + size;
46 }
47
48 // Add buttons to menu immediately
49 setTimeout(add_menu_entries, 100);
50
51 // scale fonts if query parameter is given
52 if (document.location.search.match("size=small") != null) {
53 setTimeout(function(){scale_fonts(size_small);}, 100);
54 }
55 if (document.location.search.match("size=medium") != null) {
56 setTimeout(function(){scale_fonts(size_medium);}, 100);
57 }
58 if (document.location.search.match("size=large") != null) {
59 setTimeout(function(){scale_fonts(size_large);}, 100);
60 }
61
62 </script>