【问题标题】:Reponsive menu using Javascript, issue使用 Javascript 的响应式菜单,问题
【发布时间】:2014-08-14 10:07:13
【问题描述】:

当我点击顶部栏按钮时,我想显示我的菜单,但它不起作用...

我的 JS 代码:

var topBarToggle = document.getElementById('top-bar-toggle');
var topBarUl = document.getElementById('top-bar-ul');

topBarToggle.addEventListener('click', onClickOnTopBarToggle, false);

function onClickOnTopBarToggle(e){
    topBarUl.style.display = topBarUl.style.display === 'none' ? '' : 'none';
}

我的 CSS 代码:

@media screen and (max-width : $container-width){
    ul#top-bar-ul{
        display: none;
    }
}

当我点击按钮时,什么都没有发生,我没有任何错误...但是<ul> 没有得到display:block 属性...

编辑#1:

var topBarToggle = document.getElementById('top-bar-toggle');
var topBarUl = document.getElementById('top-bar-ul');

topBarToggle.addEventListener('click', onClickOnTopBarToggle, false);

function onClickOnTopBarToggle(e){

    console.log(topBarUl.style.display);

    topBarUl.style.display = topBarUl.style.display === 'none' ? 'block' : 'none';
}

日志:

       main.js:101
none   main.js:101
block  main.js:101
none   main.js:101
block  main.js:101
none   main.js:101

【问题讨论】:

  • ? '' : 'none' 应该是? 'block' : 'none'。
  • 不,这不是问题...我想问题是我的 CSS 代码中的 CSS 属性,Javascript 可能无法删除她...
  • 这就是问题所在,不设置任何东西,css 规则就会起作用,你必须用“block”内联覆盖它,或者这个元素应该是什么:“inline”,“inline-块”、“表”等...
  • 查看编辑#1...第一次不起作用...
  • 第一次没有“none”,所以只需手动将其设置为“none”...

标签: javascript jquery css menu responsive-design


【解决方案1】:

在 jQuery 中是这样的:

$("#top-bar-toggle").on("click", function(){
    $("#top-bar-ul").toggleClass("showMobile");
});

@media screen and (max-width : $container-width){
    ul#top-bar-ul{
        display: none;
    }
    ul#top-bar-ul.showMobile{
        display: block;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    相关资源
    最近更新 更多