我supouse是menuBarSlide
是div
的ID,如果是的话这个768,16为你工作。
我添加了一些样式来突出显示div
和console.log()
以确保代码正在执行。
编辑:也许问题是,你SPECT该元素具有在right
属性的值,但它是不同的,所以记录的风格,可以是有益的。
编辑2:问题是在初始值(这就是为什么你的第一个点击不工作,所以这个变化menu.style.right = menu.style.right || "-100px";
这个问题是解决这行代码分配如果该值来-100px空。另外程序之前和条件分配新建分配FY后记录的值。
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<title>menuBarSlide</title>
<style>
#menuBarSlide { /*To highligth your div*/
position: absolute;
background-color: grey;
color: red;
}
</style>
</head>
<body>
<div class="navMenuItem hamburger" onclick="hamburger()">
<span class="ham-icon">Item1</span>
<span class="ham-icon">Item2</span>
<span class="ham-icon">Item3</span>
</div>
<div id="menuBarSlide">
<h1>menuBarSlide</h1>
</div>
<script>
var hamburger = function() {
var menu = document.getElementById('menuBarSlide');
console.log("before assing: " + menu.style.right); // To check the current style of the element
menu.style.right = menu.style.right || "-100px"; // Assign -100px if is null, otherwise keep the same value
console.log("after assing: " + menu.style.right); // To check the style after the asigment
if (menu.style.right == "-100px") {
menu.style.right = "30px";
}
else {
menu.style.right = "-100px";
}
}
</script>
<body>
<html>
尝试定义函数为'功能汉堡包()',而不是把函数的变量这样的。你不需要说你可以使用'var hamburger = function()',如果你的函数返回一个对象并且你必须实例化它。 – Merigold