我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