Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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 如何创建响应性导航栏?_Javascript_Jquery_Html_Css_Responsive Design - Fatal编程技术网

Javascript 如何创建响应性导航栏?

Javascript 如何创建响应性导航栏?,javascript,jquery,html,css,responsive-design,Javascript,Jquery,Html,Css,Responsive Design,我很难使我的网站响应,我已经做了所有的网页,只需要结束我的导航 可在www.christierichards.co.uk/gcc_网站/index.php上查看 基本上,当窗口调整到635px时,nav ul消失,出现菜单图标,此时在CSS中,nav ul已设置为显示:无。我在这里需要做的是,当你点击菜单图标时,导航被设置为显示块,并沿整个页面向下滑动,以显示导航(我希望这是有意义的!)这项技术现在在许多响应性网站上使用,但我一辈子都不知道如何做到这一点 我希望有人能帮助我!谢谢试试这个>>>

我很难使我的网站响应,我已经做了所有的网页,只需要结束我的导航

可在www.christierichards.co.uk/gcc_网站/index.php上查看

基本上,当窗口调整到635px时,nav ul消失,出现菜单图标,此时在CSS中,nav ul已设置为显示:无。我在这里需要做的是,当你点击菜单图标时,导航被设置为显示块,并沿整个页面向下滑动,以显示导航(我希望这是有意义的!)这项技术现在在许多响应性网站上使用,但我一辈子都不知道如何做到这一点

我希望有人能帮助我!谢谢

试试这个>>>

CSS:
ul > li { 
width: 24.5%; /*important*/
height: 50px;
background-color:#000;
color:orange;
float: left;
margin-left: 0.5%; /*important*/
list-style-type: none;
}
ul{margin:0px;padding:0px;} /*important*/

HTML:
<ul>
<li>NAV1</li>
<li>NAV2</li>
<li>NAV3</li>
<li>NAV4</li>
</ul>
CSS:
ul>li{
宽度:24.5%;/*重要*/
高度:50px;
背景色:#000;
颜色:橙色;
浮动:左;
左边距:0.5%;/*重要*/
列表样式类型:无;
}
ul{margin:0px;padding:0px;}/*重要*/
HTML:
  • 导航1
  • 导航2
  • 导航3
  • 导航4

这将根据浏览器大小调整大小。请回复。文本可以垂直居中对齐,也可以水平居中对齐。请对此进行回复。

您需要做两件事-

1.在菜单按钮上挂起一个事件以打开/关闭导航(我看到您正在使用jQuery,因此您可以设置

$("#pull").on("click", function(){
  $("#nav-bg").toggleClass("vertical")});
2.将CSS定义设置为与要添加的类匹配-类似于:

div#nav-bg.vertical {
    height: auto;
    background: blue;
}
.vertical ul {
    display: block;
}
.vertical nav li {
    display: block;
    float: none;
}
.vertical nav li a {
    display: block;
}
.vertical nav {
    background: blue;
}

使用jQuery slideUp/slideDown方法为#pull和切换#nav bg ul上的显示添加onClick事件。

您需要像现在一样将显示设置为none来加载它,但使用一个类,我们将其命名为“.hide”,然后使用jQuery click函数切换到显示设置为block的“.show”类

CSS看起来像这样:

.show {display:block;}
.hide {display:none;}
$("#pull").click(function(){
$("#nav-menu").toggleClass('show');
});
jQuery:

.show {display:block;}
.hide {display:none;}
$("#pull").click(function(){
$("#nav-menu").toggleClass('show');
});
这是一把小提琴:

.show {display:block;}
.hide {display:none;}
$("#pull").click(function(){
$("#nav-menu").toggleClass('show');
});

您使用的变量未在页面加载中定义。在窗口大小大于635的页面加载期间,您的
#pull
不可见,因此变量
var pull=$(“#pull”)
没有定义,窗口宽度的改变不会给你带来任何改变,除了你为酒吧准备的其他样式

因此,我建议您尝试更改脚本,使其侦听窗口宽度,并仅在窗口宽度小于或等于636px时执行此函数

var winWidth = $(window).width();
$(window).rezise(function(){
    if(winWidth <= 635){
    addPull();
    }
});

function addPull(){
    menu        = $('nav ul');
    menuHeight  = menu.height();

    $(document).on('click','#pull' function(e) {
        e.preventDefault();
        menu.slideToggle();
    });
}
$(document).ready(function(){
    if(winWidth <= 635){
    addPull();
    }
});
var winWidth=$(窗口).width();
$(窗口).rezise(函数(){

if(winWidth)欢迎使用StackOverflow。您会发现显示编码细节的答案(通常至少几行)会得到更好的响应。