使用 javascript 转换翻译不起作用

transform translate using javascript doesn't work

所以我尝试使用一些简单的方法 JavaScript 制作汉堡菜单,结果发现这并不容易。出于某种原因,我的转换翻译不起作用。

我的javascript代码:

function hamburger() {
  var x = document.getElementById("links");
  if (x.style.transform === "translateX(0)") {
    x.style.transform === "translateX(100%)";
  } else {
    x.style.transform === "translateX(0)";
  }
}

我的css:

#links {
    position: absolute;
    width: 90%;
    overflow: hidden;
    top: 50px;
    right: 0;
    background-color: #dedede;
    min-height: calc(100vh - 50px);
    /*transform: translateX(100%);*/
}

x.style 中,您试图访问内联样式属性,而不是样式声明中的属性。 (您的代码还尝试使用比较运算符进行赋值作为旁注)

您可以更轻松地切换类名:

Javascript

// cache a reference to the #links element
var x = document.getElementById("links");

function hamburger() {
  x.classList.toggle('translated');
} 

CSS

#links {
    position: absolute;
    width: 90%;
    overflow: hidden;
    top: 50px;
    right: 0;
    background-color: #dedede;
    min-height: calc(100vh - 50px);
    transform: translateX(0);
}

#links.translated {
    transform: translateX(100%);
}

只有在 if() 条件下才允许 === 并且在您的代码中 if(){...} 所以尝试将您的代码更改为

function hamburger() {
  var x = document.getElementById("links");
  if (x.style.transform === "translateX(0)") {
    x.style.transform = "translateX(100%)";
  } else {
    x.style.transform = "translateX(0)";
  }
}

注意: =用于赋值,===用于检查条件。