我已经使用了一段时间以下移动菜单代码。它工作正常。我通过css添加了动画,因此,当单击菜单按钮时,它会添加动画以便平滑滚动-但是,我注意到它在第一次单击时不起作用-第一次单击后的所有单击都起作用。另外,如果您在我的jquery代码中看到一些毛病,请告诉我,我是jquery的新手,正在尝试边做边学。

任何帮助,或洞悉我所寻找的东西,试图解决这个问题将不胜感激。

jQuery(function() {
    //show the menu when button is clicked
    jQuery('#menu_btn').click(function() {
        if(jQuery('#menu').is(':visible')) {
            jQuery('#menu').animate({ left: '-100%' }, 'slow', function () {
                jQuery("#menu").css('display', 'none');
                jQuery('#menu_close').css('display', 'none');
            });
        } else {
            jQuery("#menu").css('display', 'block');
            jQuery('#menu').animate({ left: '0' }, 'slow', function(){
                jQuery('#menu_close').css('display', 'block');
            });
        }
    });

    //close menu when X button is clicked
    jQuery('#menu_close').click(function() {
        jQuery('#menu').animate({ left: '-100%' }, 'slow', function () {
            jQuery("#menu").css('display', 'none');
        });
    });

    callOnResize();
});

jQuery(window).resize( function(){
    callOnResize();
});

function callOnResize() {
    var winwidth = jQuery(window).width();
    if (winwidth < 760) {
        jQuery( '#menu' ).css({ display: 'none' });
        jQuery('#menu').animate({ left: '0' }, 'slow');
    } else if (winwidth >= 760) {
        jQuery( '#menu' ).css({ display: 'block' });
    }
}


菜单的html是wordpress输出的非常简单的ul li视图

<div id="menu">
<ul>
<li>item</li>
<li>item</li>
<li>item</li>
</ul>
</div>

最佳答案

如果元素占用了文档中的空间,则认为它们是可见的。可见元素的宽度或高度大于零。

默认情况下,“ div:#menu”菜单不应显示为“ display:none”。

该脚本应如下所示:

jQuery('#menu_btn').click(function() {

        if(jQuery('#menu').is(':hidden')) {
            jQuery("#menu").css('display', 'block');
            jQuery('#menu').animate({ left: '0' }, 'slow', function(){
               jQuery('#menu_close').css('display', 'block');
            });
     });

        } else {

            jQuery('#menu').animate({ left: '-100%' }, 'slow', function () {
                jQuery("#menu").css('display', 'none');
                jQuery('#menu_close').css('display', 'none');
        }
    });

09-17 19:04
查看更多