• Resuelto lutijimenez

    (@lutijimenez)


    Hola buenas tardes.

    Estoy realizando una web con WP, he seleccionado el tema blackbird y todo funciona correctamente a excepción de una cosa.

    Cuando accedo a la web mediante el movil no consigo que se despliegue el menú. Este consta de menu y submenu.

    El problema creo que es que cuando intenta abrirse el menú como tiene ul y li se hace lio y lo abre y lo cierra.

    Este es el código:

    blackbird funtion:

    function blackbird_add_menuclass($ulclass) {
        return preg_replace('/
    <ul>/', '<ul class="ddsmoothmenu">', $ulclass, 1);
    }
    
    add_filter('wp_page_menu', 'blackbird_add_menuclass');
    add_action('init', 'blackbird_register_custom_menu');
    
    function blackbird_register_custom_menu() {
        register_nav_menu('custom_menu', __('Main Menu', 'black-bird'));
    }
    
    function blackbird_nav() {
        if (function_exists('wp_nav_menu'))
            wp_nav_menu(array('theme_location' => 'custom_menu', 'container_id' => 'menu', 'menu_class' => 'ddsmoothmenu', 'fallback_cb' => 'blackbird_nav_fallback'));
        else
            blackbird_nav_fallback();
    }
    
    function blackbird_nav_fallback() {
        ?>
        <div id="menu">
            <ul class="ddsmoothmenu">
                <?php
                wp_list_pages('title_li=&show_home=1&sort_column=menu_order');
                ?>
            </ul>
        </div>
        <?php
    }
    
    function blackbird_nav_menu_items($items) {
        if (is_home()) {
            $homelink = '<li class="current_page_item">' . '<a href="' . home_url('/') . '">' . __('Home', 'black-bird') . '</a>';
        } else {
            $homelink = '
    <li>' . '<a href="' . home_url('/') . '">' . __('Home', 'black-bird') . '</a></li>
    ';
        }
        $items = $homelink . $items;
        return $items;
    }
    
    add_filter('wp_list_pages', 'blackbird_nav_menu_items');

    PHP:

    <div class="grid_18 alpha">
                                <div id="MainNav">
                                    <a href="#"><?php _e('Pages Navigation Menu', 'black-bird'); ?><span></span></a>
                                    <?php blackbird_nav(); ?>
                                </div></div>

    Alguien podría echarme una mano?

    Muchas gracias

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • toledano

    (@streetdog)

    Ese tipo de menús usan una combinación de CSS y JavaScript para mantener abierto el menú. Prueba la consola de depuración en tu navegador para averiguar que es lo que falla. O publica la URL de tu sitio para poder revisar el código.

    Iniciador del debate lutijimenez

    (@lutijimenez)

    Hola,

    Pues si tienes razón, pero no puedo publicar la url porque de momento la tango en local.
    Adjunto el codigo de javascript y el css:

    esta es la función JQuery:

    (function(jQuery){
    		$it_mobile_nav = jQuery('#MainNav .mobile_nav'),
    		$it_nav_list = jQuery('#MainNav ul.ddsmoothmenu');
    
    	jQuery(document).ready(function(){
    		it_menu( $it_nav_list, $it_mobile_nav, 'mobile_menu', 'it_mobile_menu' );
    
    		function it_menu( menu, append_to, menu_id, menu_class ){
    			var $menu_nav;
    
    			menu.clone().attr('id',menu_id).removeClass().attr('class',menu_class).appendTo( append_to );
    			$menu_nav = append_to.find('> ul');
    			$menu_nav.find('li:first').addClass('it_first_menu_item');
    
    			append_to.click( function(){
    				if ( jQuery(this).hasClass('closed') ){
    					jQuery(this).removeClass( 'closed' ).addClass( 'opened' );
    					$menu_nav.slideDown(500);
    
    				} else {
    					jQuery(this).removeClass( 'opened' ).addClass( 'closed' );
    					$menu_nav.slideUp(500);
    
    				}
    				return false;
    			} );
    
    			append_to.find('a').click( function(event){
    				event.stopPropagation();
    			});
    		}		
    
    	});
    })(jQuery)(function(jQuery){
    		$it_mobile_nav = jQuery('#MainNav .mobile_nav'),
    		$it_nav_list = jQuery('#MainNav ul.ddsmoothmenu');
    
    	jQuery(document).ready(function(){
    		it_menu( $it_nav_list, $it_mobile_nav, 'mobile_menu', 'it_mobile_menu' );
    
    		function it_menu( menu, append_to, menu_id, menu_class ){
    			var $menu_nav;
    
    			menu.clone().attr('id',menu_id).removeClass().attr('class',menu_class).appendTo( append_to );
    			$menu_nav = append_to.find('> ul');
    			$menu_nav.find('li:first').addClass('it_first_menu_item');
    
    			append_to.click( function(){
    				if ( jQuery(this).hasClass('closed') ){
    					jQuery(this).removeClass( 'closed' ).addClass( 'opened' );
    					$menu_nav.slideDown(500);
    
    				} else {
    					jQuery(this).removeClass( 'opened' ).addClass( 'closed' );
    					$menu_nav.slideUp(500);
    
    				}
    				return false;
    			} );
    
    			append_to.find('a').click( function(event){
    				event.stopPropagation();
    			});
    		}		
    
    	});
    })(jQuery)(function(jQuery){
    		$it_mobile_nav = jQuery('#MainNav .mobile_nav'),
    		$it_nav_list = jQuery('#MainNav ul.ddsmoothmenu');
    
    	jQuery(document).ready(function(){
    		it_menu( $it_nav_list, $it_mobile_nav, 'mobile_menu', 'it_mobile_menu' );
    
    		function it_menu( menu, append_to, menu_id, menu_class ){
    			var $menu_nav;
    
    			menu.clone().attr('id',menu_id).removeClass().attr('class',menu_class).appendTo( append_to );
    			$menu_nav = append_to.find('> ul');
    			$menu_nav.find('li:first').addClass('it_first_menu_item');
    
    			append_to.click( function(){
    				if ( jQuery(this).hasClass('closed') ){
    					jQuery(this).removeClass( 'closed' ).addClass( 'opened' );
    					$menu_nav.slideDown(500);
    
    				} else {
    					jQuery(this).removeClass( 'opened' ).addClass( 'closed' );
    					$menu_nav.slideUp(500);
    
    				}
    				return false;
    			} );
    
    			append_to.find('a').click( function(event){
    				event.stopPropagation();
    			});
    		}		
    
    	});
    })(jQuery)

    Este es el CSS:

    .it_mobile_menu li {
        margin: 0;
    }
    .it_mobile_menu li a {
        font-size: 12px;
        text-decoration: none;
        text-transform: capitalize;
        text-shadow:none;
        border-bottom: 1px solid #e2e0e0;
        margin: 0 !important;
    }
    .it_mobile_menu li:last-child a {
        border-bottom:none;
        padding-bottom: 15px;
    }
    .it_mobile_menu li a:hover {
        color: #2565ac;
    }
    .it_mobile_menu > li.current_page_item > a {
        color: #2565ac;
    }
    #mobile_menu {
        width: 318px;
        border: 1px solid #e2e0e0 !important;
        left: -1px;
        padding: 0;
        padding-bottom: 20px;
        background: #f8f8f8;
        top: 42px !important;
        -moz-border-radius: 10px;
        -webkit-border-radius: 10px;
        border-radius: 10px;
        border-top-left-radius: 0px;
        -moz-border-radius-topleft: 0px;
        border-top-right-radius: 0px;
        -webkit-border-top-left-radius: 0px;
        -moz-border-radius-topright: 0px;
        -webkit-border-top-right-radius: 0px;
        z-index: 9999px;
        list-style:none;
    }
    #mobile_menu ul {
        list-style:none;
    }
    .it_mobile_menu {
        position: absolute;
        top: 46px !important;
        left: 3px;
        z-index: 1000;
        display: none;
        text-align: left;
    }
    .it_mobile_menu ul {
        display: block !important;
        visibility: visible !important;
        border-bottom: 1px solid #e2e0e0;
    }
    .it_mobile_menu ul li a {
        margin-left:12px !important;
        padding-top: 12px !important;
        padding-bottom: 4px !important;
    }
    .it_mobile_menu ul li:last-child a {
        padding-bottom: 10px !important;
    }
    .it_mobile_menu ul a {
        border-bottom: none;
    }
    .mobile_nav {
        color: #3B3B3B;
        display: none;
        background: #f8f8f8;
        border: 1px solid #e2e0e0;
        position: relative;
        padding: 15px 22px 11px 46px;
        font-size: 12px;
        text-transform: uppercase;
        font-weight: bold;
        width:250px;
    }
    .mobile_nav:before, .mobile_nav:after {
        content: '';
        position: absolute;
        top: 0;
        width: 2px;
        height: 100%;
    }
    .mobile_nav:before {
        left: 0;
    }
    .mobile_nav:after {
        right: 0;
    }
    .mobile_nav:hover {
        text-decoration: none;
        color:#3B3B3B;
    }
    .mobile_nav > span {
        display: block;
        width: 15px;
        height: 10px;
        background: url(images/responsive_arrow.png) no-repeat;
        position: absolute;
        top: 19px;
        left: 63px;
        -moz-transition: all 0.5s ease-in-out;
        -webkit-transition: all 0.5s ease-in-out;
        -o-transition: all 0.5s ease-in-out;
        transition: all 0.5s ease-in-out;
    }
    .mobile_nav.opened > span {
        -moz-transform: rotate(-180deg);
        -webkit-transform: rotate(-180deg);
        -o-transform: rotate(-180deg);
        transform: rotate(-180deg);
    }

    Y en el anterior post las funciones de javascript

    Muchas gracias por todo

    Iniciador del debate lutijimenez

    (@lutijimenez)

    Solucionado, era problema del proxy.

    Muchas gracias

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • El debate ‘Menu desplegable blackbird’ está cerrado a nuevas respuestas.