Subversion Repositories wimsdev

Rev

Rev 13171 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /* wimsmenumodubox.js : New slide-in / slide-out menu
  2. (used in Nikaia theme)
  3. */
  4.  
  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.  
  18. document.addEventListener("DOMContentLoaded", function() {
  19.  
  20.     var wims_menu = document.getElementById("wimsmenumodubox");
  21.     if (wims_menu){
  22.  
  23.         // Must be done after css transition
  24.         setTimeout('dynapi_redraw()', 550);
  25.  
  26.         /* Extruder style */
  27.         /*
  28.         wims_menu.addClass("{title:'&#8593;&#8595;'}");
  29.  
  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.         */
  40.  
  41.         /* Slideout style*/
  42.  
  43.         var body = document.getElementsByTagName("BODY")[0];
  44.  
  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
  48.  
  49.         var menu_panel = document.getElementById('wimsmenumodubox');
  50.         menu_panel.classList.add("slide-menu");
  51.  
  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";
  60.  
  61.         var button = document.createElement("a");
  62.         button.className = "wims_button wims_secondary_button";
  63.  
  64.         var span1 = document.createElement("span");
  65.         var textnode = document.createTextNode("\u21e6");
  66.         span1.appendChild(textnode);
  67.         button.appendChild(span1);
  68.  
  69.         var span2 = document.createElement("span");
  70.         var textnode = document.createTextNode("\u21e8");
  71.         span2.appendChild(textnode);
  72.         button.appendChild(span2);
  73.  
  74.         container.appendChild(button);
  75.         menu_panel.insertBefore(container, menu_panel.childNodes[0]);
  76.  
  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");
  82.  
  83.           // Must be done after css transition
  84.           setTimeout('dynapi_redraw()', 550);
  85.  
  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.         });
  92.  
  93.     }
  94. });
  95.