我正在尝试制作一个简单的Javascript按钮来切换屏幕上和菜单外的菜单。我有一个if-else语句,用于检测<nav>
的当前位置,并将其left
css属性更改为该效果。
现在,正如您在我的代码中所看到的,这将显示菜单一次,但之后不会隐藏它:
if (navStyle == '0') { setNav('-500px'); }
else { setNav('0'); }
这将正确地完成工作:
if (navStyle == '-500px') { setNav('0'); }
else { setNav('-500px'); }
奇怪吧?谁知道发生了什么?
答案 0 :(得分:2)
这是因为宽度实际上永远不会等于0,它将类似于0px,具体取决于您选择的单位。你的第二组条件是有效的,因为它们首先检查宽度(500px),如果它不匹配则选择另一个(0px)。
您可以通过多种方式处理此问题,包括仅从0px中提取数字值,但是由于您已经开始使用它,因此将来需要注意的事项。 :)