Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript更改移动显示的css值_Javascript_Css_Mobile_Nav - Fatal编程技术网

Javascript更改移动显示的css值

Javascript更改移动显示的css值,javascript,css,mobile,nav,Javascript,Css,Mobile,Nav,我试图使一个移动导航按钮改变菜单显示从显示:无;显示:块;单击后再从显示:块;显示:无;当再次单击时。从显示切换到无工作;显示:块;但不是从显示:块;显示:无 我对使用javascript还比较陌生,我确实尝试过四处搜索我的答案(我觉得它可能在某个地方),但除非我实现了一些我发现错误的其他代码,否则我无法让它正常工作。下面是我编写代码的最初尝试。谢谢你的帮助 var hidden = true; if (hidden == true) { $('a.hamburger').click(f

我试图使一个移动导航按钮改变菜单显示从显示:无;显示:块;单击后再从显示:块;显示:无;当再次单击时。从显示切换到无工作;显示:块;但不是从显示:块;显示:无

我对使用javascript还比较陌生,我确实尝试过四处搜索我的答案(我觉得它可能在某个地方),但除非我实现了一些我发现错误的其他代码,否则我无法让它正常工作。下面是我编写代码的最初尝试。谢谢你的帮助

var hidden = true;

if (hidden == true) {
   $('a.hamburger').click(function() {
    hidden = false;
    document.getElementById('navigation').style.display = "block";
    document.getElementById('header-menu').style.height = "370px";
    });
} else if (hidden != true) {
$('a.hamburger').click(function() {
    hidden = true;
    document.getElementById('navigation').style.display = "none";
    document.getElementById('header-menu').style.height = "78px";
});
};

在jquery中隐藏和显示元素的正确方法是使用
.hide()
.show()

例如:

$('#id').hide(); 

$('#id').show();
或者

$("#id").css("display", "none");

$("#id").css("display", "block");

或者可以使用jQuery的
.toggle()
。此外,我不确定出于某种原因是否有意将jQuery与vanilla JS混合使用,但这里有一个纯jQuery解决方案:

$(document).ready(function(){
    $('a.hamburger').click(function() {
        $('#navigation').toggle();
        if ($('#navigation').is(':visible')) {
            $('#header-menu').css('height', '370');
        } else {
           $('#header-menu').css('height', '');
        }  
    });
});

这是一个例子

谢谢大家的回答,我一直在等待一封电子邮件提醒,说我有回复,但从未收到过回复,所以我今天早上向一位朋友寻求帮助,发现问题是我有两个单击功能,但只需要一个,下面是解决方法:

var $isHidden = true;

$('a.hamburger').click(function() { 


     if ($isHidden == true){

    document.getElementById('navigation').style.display = "block";
    document.getElementById('header-menu').style.height = "370px";
    $isHidden = false;

} else {


    document.getElementById('navigation').style.display = "none";
    document.getElementById('header-menu').style.height = "78px";
    $isHidden = true;
 };
 });