Responsive dropdown menu bug

  • milos
    Support Staff
  • Moderator
  • Moderator
More
11 years 10 months ago #26598 by milos
Replied by milos on topic Responsive dropdown menu bug
Two more things to make it work better:

Edit template's index.php file and change line
Code:
<?php if($enableResponsiveMenu){ ?><script type="text/javascript" src="<?php echo $template_path ?>/js/tinynav.min.js"></script>
to
Code:
<?php if($enableResponsiveMenu){ ?><script type="text/javascript" src="<?php echo $template_path ?>/js/tinynav.js"></script>
and change this part in file /js/tinynav.js
Code:
// Select the active item if (!settings.header) { $select .find(':eq(' + $(l_namespace_i + ' li') .index($(l_namespace_i + ' li.' + settings.active)) + ')') .attr('selected', true); }
to this
Code:
// Select the active item if (!settings.header) { $select .find(':eq(' + $(l_namespace_i + ' li') .index($(l_namespace_i + ' li.' + settings.active)) + ')') .attr('selected', false); }

Please Log in to join the conversation.

  • MrDooh
    Inactive member
  • Topic Author
  • New Member
  • New Member
More
11 years 10 months ago #26627 by MrDooh
Replied by MrDooh on topic Responsive dropdown menu bug
Hi milos,

thx for taking care of this bug. I did all the changes you suggested, but it doesn't make things really better on my Galaxy S3 (720x1280) and two other Android devices (Galaxy Ace & Galaxy S2, always used stock browser). There is still no chance to navigate, no chance to click on another menu item, so fast does the menu disappear again after popping up short on the bottom of the screen, not in the middle as seen on Manymo. The only change the custimization has made, was that the menu button takes place on the right hand of the logo and covers half of it. There is still a empty white bar on the left of the button (former active item 'contact'). In landscape mode the menu callapses on my 1280x720 device and covers the whole logo. Watch it yourself on tineundholly.trauensich.net . Hope this helps, and forget about the emulator, the menu seems to work there, but on a real Android smartphone it doesn't :(
Maybe it is possible to hide the 'active item' on the left of the menu button completely. Took a look myself, but didn't find a solution for this bug, too. Maybe changing the tinynav script at all is the right way?

Hope you find a solution for this.
Thx, Dooh

Please Log in to join the conversation.

More
11 years 10 months ago #26689 by ivan.milic
This may help, open layout.css and find:

.topmenurow {
position: fixed;
top: 0;
width: 100%;
background: rgba(255,255,255,.95);
z-index: 1;
box-shadow: 0px 1px 5px #ddd;
}

change position: fixed; to position: absolute;

Please Log in to join the conversation.

  • MrDooh
    Inactive member
  • Topic Author
  • New Member
  • New Member
More
11 years 10 months ago #26698 by MrDooh
Replied by MrDooh on topic Responsive dropdown menu bug
I tried this, but now the menu is absolute and no more accessible on ankers. Neither more, it still doesn't work on Android (click menu button, menu pops up and disappears). Not the best solution I think. Is there a possibility to hide the active item name, so that only the menu button is visible on the right hand of the logo? So, menu and logo do no more overlap in portrait mode. But this would only make sense if the menu would work ;-)

Hoping for another solution,
Dooh

Please Log in to join the conversation.

  • milos
    Support Staff
  • Moderator
  • Moderator
More
11 years 10 months ago - 11 years 10 months ago #26738 by milos
Replied by milos on topic Responsive dropdown menu bug
I think I found out why it doesn't work on Android. Actually, it works in the latest version (Jelly Bean), but doesn't work on older. The reason is:
Code:
position:fixed;

which (older) Android's browser doesn't recognize. To fix this, change file hot_onepage.js to be like this:
Code:
jQuery(document).ready(function(){ // calling tabs jQuery("#tabs").tabs(); jQuery(".scroll, .mp_topmenu a:not(.external)").click(function(event){ event.preventDefault(); try{ jQuery('html,body').animate({scrollTop:jQuery(this.hash).offset().top}, 500); }catch(e){ jQuery('html,body').animate({scrollTop:0}, 500); } }); // set big image container height var bodyHeight = jQuery(window).height(); var bodyHeightSinglePage = jQuery(window).height() - 240; jQuery('.fullwidth').css('height', bodyHeight); jQuery('div.item-page').css('min-height', bodyHeightSinglePage); if( /Android/i.test(navigator.userAgent) ) { jQuery('.topmenurow').css('position','static'); } });

This will make the menu row to appear on all Android versions, but it would not be fixed. If you don't change this file, the top menu row will work only on Jelly Bean devices (will be static, as on desktop version).
Last edit: 11 years 10 months ago by milos.

Please Log in to join the conversation.

Time to create page: 0.100 seconds
Powered by Kunena Forum