Javascript 样式切换不起作用第一次单击

标签 javascript html css toggle

我正在制作这个带有侧边栏菜单的小 html 应用程序,该菜单会在单击时弹出。它工作正常,只是它只在第二次单击后才开始工作。第一次点击没有任何反应。

CSS:

#menubalk{
   margin-left: -260px;
}

HTML:

<div id="menubutton">
   <img src="design/images/menu.png" id="menu" onclick="toggle()" alt=""/>
</div>

<div id="menubalk">
   <h5>Menu</h5>
</div>

Javascript:

function toggle () {
  var el = document.getElementById("menubalk");
  var kop = document.getElementById("kop");
  var pag = document.getElementById("pagina");

  if ( el.style.marginLeft=="-260px" ) {
     el.style.marginLeft="0px";
     kop.style.marginLeft="260px";
     pag.style.marginLeft="260px";
  } else {
     el.style.marginLeft="-260px";
     kop.style.marginLeft="0px";
     pag.style.marginLeft="0px";
  }
}

我想我可能还必须在 javascript 中的某处设置边距,但我无法弄清楚。

非常感谢所有帮助!

最佳答案

style.marginLeft 正在查看您的内联样式。由于您最初没有定义任何内联样式,因此 style.marginLeft 未定义。

要解决这个问题,您可以简单地反转您的 if/else 语句:

if ( el.style.marginLeft=="0px" )

关于Javascript 样式切换不起作用第一次单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15097755/

相关文章:

java - jsoup 从 <a> 标签内的标签获取文本

css - 调整大小和 HTML 视频

javascript - 移动菜单在 Jsfiddle 中有效,但在本地主机上无效

PHP 错误 : Notice: Undefined variable

javascript - 使用正则表达式从字符串数量中删除千位分隔符的最佳方法

javascript - 是否可以使用 Angular 获取元素的内部 HTML?

html - (简单) max-width : 100% not working for img (on mobile), 看代码

javascript - 如何使用 javascript 相对于其父尺寸缩放具有给定类的每个元素的字体?

带有手形光标悬停的 HTML 自定义上传按钮?

html - CSS:如何将容器缩放到动态大小的 child 的宽度?