使JS成为汉堡包动画的问题

时间:2017-08-09 08:31:17

标签: javascript html css menu hamburger-menu

我编写了这段JS代码,它更改了hamburger menu div的类,在大多数浏览器上都可以运行,但是对于一些较旧的它没有(它不会改变类,它不会' t在控制台中给我任何错误。)

JS代码:

var hamburger = document.querySelector("#hamburger"); // hamburger menu
var mtMenu = document.querySelector(".m-t-menu");

hamburger.addEventListener("click", function() {
    if (hamburger.classList == "close") {
        hamburger.classList = "open";
        mtMenu.style.display = "block";
    } else if(hamburger.classList == "open") {
        hamburger.classList = "close";
        mtMenu.style.display = "none";
    }
});

有没有错误,或者有更好的方法在没有jQuery的情况下编写它?

1 个答案:

答案 0 :(得分:0)

而是尝试使用方法contains,它返回一个布尔值(即true或false)。

hamburger.addEventListener('click', function(){
  if (hamburger.classList.contains('close'){
    hamburger.className  = 'open'
    mtMenu.style.display = 'block'
  } else if (hamburger.classList.contains('open')){
    hamburger.className  = 'close'
    mtMenu.style.display = 'none'
  }
})

然而,旧版浏览器可能无法使用contains方法;我不完全确定。