Rev 13280 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
13280 | obado | 1 | /* wimsmenumodubox.js : New slide-in / slide-out menu |
2 | (used in Nikaia theme) |
||
3 | */ |
||
5929 | obado | 4 | |
13280 | obado | 5 | /* Redraw Dynapi layers after menu sliding */ |
6 | var dynapi_redraw = function(){ |
||
7 | //console.log("dynapi_redraw called"); |
||
8 | if (typeof dynapi !== 'undefined') { |
||
9 | var childs=dynapi.document.getChildren(); |
||
10 | var l = childs.length; |
||
11 | for(var i=0;i<l;i++) { |
||
12 | childs[i].updateAnchor(); |
||
13 | } |
||
14 | } |
||
15 | } |
||
16 | |||
17 | |||
13171 | obado | 18 | document.addEventListener("DOMContentLoaded", function() { |
19 | |||
13836 | obado | 20 | var wims_menu = document.getElementById("wimsmenumodubox"); |
21 | if (wims_menu){ |
||
13171 | obado | 22 | |
13836 | obado | 23 | // Must be done after css transition |
24 | setTimeout('dynapi_redraw()', 550); |
||
13171 | obado | 25 | |
13836 | obado | 26 | /* Extruder style */ |
27 | /* |
||
28 | wims_menu.addClass("{title:'↑↓'}"); |
||
7671 | bpr | 29 | |
13836 | obado | 30 | wims_menu.buildMbExtruder({ |
31 | position:"left", |
||
32 | width:250, |
||
33 | extruderOpacity:0.8, |
||
34 | textOrientation:"tb", |
||
35 | onExtOpen:function(){}, |
||
36 | onExtContentLoad:function(){wims_menu.openPanel();}, |
||
37 | onExtClose:function(){} |
||
38 | }); |
||
39 | */ |
||
13171 | obado | 40 | |
13836 | obado | 41 | /* Slideout style*/ |
13171 | obado | 42 | |
13836 | obado | 43 | var body = document.getElementsByTagName("BODY")[0]; |
13171 | obado | 44 | |
13836 | obado | 45 | // Get in sessionStorage if menu was previously opened. |
46 | var previous_state = sessionStorage.getItem("slide_menu_state"); |
||
47 | previous_state = previous_state === null ? "closed" : previous_state; //default state |
||
13171 | obado | 48 | |
13836 | obado | 49 | var menu_panel = document.getElementById('wimsmenumodubox'); |
50 | menu_panel.classList.add("slide-menu"); |
||
13171 | obado | 51 | |
13836 | obado | 52 | if (previous_state == "closed"){ |
53 | body.classList.add("slide-menu-closed"); |
||
54 | }else{ |
||
55 | body.classList.add("slide-menu-opened"); |
||
56 | } |
||
57 | // Add a toggle button on top of the main panel |
||
58 | var container = document.createElement("div"); |
||
59 | container.className = "toggle-button"; |
||
13171 | obado | 60 | |
13836 | obado | 61 | var button = document.createElement("a"); |
62 | button.className = "wims_button wims_secondary_button"; |
||
13171 | obado | 63 | |
13836 | obado | 64 | var span1 = document.createElement("span"); |
65 | var textnode = document.createTextNode("\u21e6"); |
||
66 | span1.appendChild(textnode); |
||
67 | button.appendChild(span1); |
||
13171 | obado | 68 | |
13836 | obado | 69 | var span2 = document.createElement("span"); |
70 | var textnode = document.createTextNode("\u21e8"); |
||
71 | span2.appendChild(textnode); |
||
72 | button.appendChild(span2); |
||
13171 | obado | 73 | |
13836 | obado | 74 | container.appendChild(button); |
75 | menu_panel.insertBefore(container, menu_panel.childNodes[0]); |
||
13171 | obado | 76 | |
13836 | obado | 77 | button.addEventListener('click', function() { |
78 | //slideout.toggle(); |
||
79 | //console.log("toggle clicked !"); |
||
80 | body.classList.toggle("slide-menu-closed"); |
||
81 | body.classList.toggle("slide-menu-opened"); |
||
13171 | obado | 82 | |
13836 | obado | 83 | // Must be done after css transition |
84 | setTimeout('dynapi_redraw()', 550); |
||
13280 | obado | 85 | |
13836 | obado | 86 | previous_state = previous_state == "closed" ? "opened" : "closed"; //new state |
87 | /*if (previous_state=="closed"){ |
||
88 | body.focus(); |
||
89 | }*/ |
||
90 | sessionStorage.setItem("slide_menu_state", previous_state); |
||
91 | }); |
||
13171 | obado | 92 | |
13836 | obado | 93 | } |
6707 | bpr | 94 | }); |