Dropline menu

GK User
Wed Dec 21, 2011 11:35 am
Hello,
With the dropline menu, when the mouse scrolls over the 2d, 3rd or other parent item, the active submenu is the last one which was selected whith the mouse.
I would like the submenu returns to the display of the first parent sublevel and not the second or the third...
Sorry for my english; in french :
Sur la page d'accueil, le sous-menu du 1er parent est affiché. Mais quand la souris survole un autre item parent, le sous-menu de ce parent est affiché, ce qui est normal jusque-là. Mais après le survol de ces autres items parents, le sous-menu affiché reste celui du dernier item parent survolé par la souris. Or j'aimerais que le sous-menu affiché sois toujours celui lié au premier item parent (celui de gauche), même après le survol des autres items parents.
Merci beaucoup, Thank you
User avatar
Fresh Boarder

teitbite
Wed Dec 21, 2011 1:26 pm
Hi

Can You please describe it a little bit better ? Put some screenshots maby. I have not understand the request.
User avatar
Moderator

GK User
Tue Jan 10, 2012 10:35 am
Hello,

I did it with worldnews2, i am newbie in javascript so there is 99% of chances there is a better way to do it, but it works. :P

Open default.php in templates/gk_game_magazine/layouts
and add
line 71 :
Code: Select all
<div id="BoxMouse">
before
Code: Select all
<div id="gkMainMenu">

and add
line 82 :
Code: Select all
</div>
before
Code: Select all
<?php if( $this->modules('header')) : ?>


then make a backup of menu.gkdropline.js in templates/gk_game_magazine/js

then replace all code in menu.gkdropline.js by this :
Code: Select all
window.addEvent('load', function() {
   var box = document.id('BoxMouse');
   var main = document.id('gkDropMain');
   var sub = document.id('gkDropSub');
   
   if(main) {
      var submenus = document.id('gkSubmenu').getElements('#gkDropSub > ul');
      var currentsub = null;
      var persosub = null;
      submenus.each(function(el, i) {
         if(el.hasClass('active')) currentsub = submenus[i];
      });
      
      main.getElements('li').each(function(el, i) {
            if(el.hasClass('active')) {
            currentsub = submenus[i];
            currentsub.setStyle('left', 'auto');
            currentsub.setProperty('class', 'active');persosub = currentsub;                     
               }                     
                                 
         el.addEvent('mouseenter', function() {
            if(currentsub) {
               currentsub.setStyle('left', '-999em');
               submenus.setProperty('class', '');
            }
               
            currentsub = submenus[i];
            currentsub.setStyle('left', 'auto');
            currentsub.setProperty('class', 'active');
         });
         });
         
                  box.addEvent('mouseleave', function() {
            if(currentsub) {
               currentsub.setStyle('left', '-999em');
               submenus.setProperty('class', '');
            }
               
            currentsub = persosub;
            currentsub.setStyle('left', 'auto');
            currentsub.setProperty('class', 'active');
      
         });         
                  
   }
});


regards
User avatar
Fresh Boarder


cron