Commit 8383b80f4db23a90ce2a3d5824712661d0a3cd9c

Authored by AurelioAHeckert
1 parent ade040c4

ActionItem152: menu delay (para pessoas com dificuldades para controlar o mouse)

git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1251 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/views/layouts/application.rhtml
... ... @@ -71,7 +71,7 @@
71 71 <%= render :file => 'shared/categories_menu' %>
72 72 </div><!-- id='navigation_bar' -->
73 73 <script type="text/javascript">
74   - prepareMenu('navigation_bar', { timeout: 5 });
  74 + prepareMenu('navigation_bar', { timeout: 1000 });
75 75 </script>
76 76  
77 77 <div id='user_box'>
... ...
public/javascripts/menu.js
1 1 function prepareMenu(id, options) {
2 2  
3   - var menuCloseTimeout = options.timeout || 33;
  3 + window.menuCloseTimeout = options.timeout || 333;
4 4  
5 5 if ( document.all ) {
6   - // add a class for work arround msie&#180;s css bugs
  6 + // add a class for work arround msie's css bugs
7 7 $(id).className += " msie";
8 8 }
9 9  
... ... @@ -37,7 +37,9 @@ function prepareMenu(id, options) {
37 37 return false;
38 38 }
39 39 } else {
40   - link.className += " menu-opened"
  40 + if ( window.openedMenu ) window.openedMenu.closeSubMenu();
  41 + window.openedMenu = this.subMenu;
  42 + this.className += " menu-opened"
41 43 this.subMenu.style.display = "block";
42 44 clearTimeout(this.timeOutClose);
43 45 clearTimeout(this.subMenu.timeOutClose);
... ... @@ -60,7 +62,7 @@ function prepareMenu(id, options) {
60 62 };
61 63 link.onmouseout = link.onblur =
62 64 function () {
63   - this.timeOutClose = setTimeout( this.closeSubMenu.bind(this), menuCloseTimeout );
  65 + this.timeOutClose = setTimeout( this.closeSubMenu.bind(this), window.menuCloseTimeout );
64 66 };
65 67  
66 68 //ul.closeSubMenu = function(){ this.style.display = "none" }
... ... @@ -76,7 +78,7 @@ function prepareMenu(id, options) {
76 78 function () {
77 79 if ( this.blurCalledByIEWorkArroundBug ) { return false }
78 80 this.blurCalledByIEWorkArroundBug = true;
79   - this.timeOutClose = setTimeout( this.closeSubMenu.bind(this), menuCloseTimeout );
  81 + this.timeOutClose = setTimeout( this.closeSubMenu.bind(this), window.menuCloseTimeout );
80 82 };
81 83 });
82 84  
... ... @@ -107,7 +109,7 @@ function prepareMenu(id, options) {
107 109 };
108 110 a.onblur = function() {
109 111 forceUlBlurFromLink(this);
110   - this.timeOutClose = setTimeout( this.closeSubMenu.bind(this), menuCloseTimeout );
  112 + this.timeOutClose = setTimeout( this.closeSubMenu.bind(this), window.menuCloseTimeout );
111 113 };
112 114 } else {
113 115 a.onfocus = function() { forceUlFocusFromLink(this) };
... ...