下拉菜单javascript

时间:2014-12-09 17:16:34

标签: javascript html css drop-down-menu

我想要隐藏我的下拉菜单,向右,以便在点击设置徽标时出现但由于某种原因它无法正常工作。如果有人可以查看我的代码,看看问题是什么,那将是一个很大的帮助。



 function Startgame() {
   var x = Math.floor(Math.random() * 13) + 1;
   document.getElementById('computer').src = 'card' + x + '.gif';
   document.getElementById('startButton').disabled = "false";
 }

 function reset() {
   total = 0
   document.getElementById('computer').src = 'dieDefault.gif';
   document.getElementById('img2').src = 'dieDefault.gif';
   document.getElementById('score').innerHTML = "0" + total;
 }

 function puppies() {
     document.getElementById('higher').disabled = "false";
     document.getElementById('equal').disabled = "false";
     document.getElementById('lower').disabled = "false";
   }
   /////DROPDOWN MENU/////////////
 var menuIsOpen = "false";
 window.onload = initialise;

 function initialise() {
   document.getElementById('togglemenu').onclick = navigate;
 }

 function navigate() {
   var panel = document.getElementById("menu");
   if (menuIsOpen) {
     panel.style.right = "-40em";
     menuIsOpen = "false";
     document.getElementById('togglemenu').innerHTML = "Open";
   } else {
     panel.style.top = "0em";
     menuIsOpen = "true";
     document.getElementById('togglemenu').innerHTML = "Close";
   }
 }

<div id="settings">
  <ul id="menu">
    <b> Colour</b>
    <form action="menu">
      <li>
        <input type="radio" value="blackbackground">Black BG</li>
      <li>
        <input type="radio" value="graybackground">Gray BG</li>
      <li id="togglemenu">
        <img src="settings_img.png" width="60" hieght="60">
      </li>
    </form>
</div>
<div id="bodydiv">
  <h1> Card Game</h1>
  <img src="back.gif" id="computer">
  <div id="comp">Computer</div>
  <div id="arrow">
    <img src="arrow2.png" width="100" height="100">
  </div>
  <img src="back.gif" id="player">
  <div id="play">Player</div>
  <div id="kittens">
    <button id="startButton" onclick="Startgame();">Start Game</button>
    <div id="buttons_1">
      <button id="higher" onload="puppies();">Higher</button>
      <button id="equal">Equal</button>
      <button id="lower">Lower</button>
    </div>
    <button id="draw" onclick="Startgame();">Draw your card</button>
    <div id="resetscore"> <a href="url">Reset Score </a>
    </div>
  </div>
  <div id="score"></div>
</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

您的代码出现了不一致和错误,所以我甚至不知道从哪里开始。

有几件事:

  1. 如果要检查变量是否为真,则其值应为布尔值(truefalse),而不是文本("true"或{ {1}});如果你把布尔值放在引号之间,那么它就变成了文本,而你却不能像你那样检查它。因此,如果您说"false",则检查var value = "true" if (value == "true")。后者仅在您设置if (value)(不带引号)时才有效。

  2. 您必须按照var value = true的顺序设置元素的基本CSS值,即将其设置为top(默认隐藏)。

    < / LI>
  3. position:relative; top:-40em替换为document.getElementById('togglemenu').onclick = navigate;

  4. 如果您正确设置CSS以隐藏菜单,则不需要document.getElementById('togglemenu').onclick = function() { navigate() };

  5. 以下是删除绒毛的更新代码,因为它无关紧要:

    &#13;
    &#13;
    initialize
    &#13;
    var menuIsOpen = false;
    document.getElementById('togglemenu').onclick = function() { navigate() };
    
    function navigate() {
        var panel = document.getElementById("menu");
        if (menuIsOpen) {
            panel.style.top = "-40em";
            menuIsOpen = false;
            document.getElementById('togglemenu').innerHTML = "Open";
        } else {
            panel.style.top = "0em";
            menuIsOpen = true;
            document.getElementById('togglemenu').innerHTML = "Close";
        }
    }
    &#13;
    #menu {
        position:relative;
        top:-40em;
    }
    &#13;
    &#13;
    &#13;

答案 1 :(得分:0)

您可以使用JavaScript,使用某种脚本来隐藏菜单,然后当用户点击您的徽标时,使用onclick来调用函数来显示您的div。你的代码没什么帮助,而且我仍然对什么不起作用感到困惑。

看看这个here

答案 2 :(得分:0)

total = 0后您错过了分号且HTML无效。 看看this