javascript - 如何在 imageclick 上做下拉?

标签 javascript html css

这是我的代码:

     <img src="img/fastcall150.png" id="round" onclick="myFunction();" />
        <img src="img/gesturecall150.png" id="round" onclick="myFunctio();" class="dropbtn" />
         <div id="myDropdown" class="dropdown-content">
         <a href="javascript:myFunc()"> Shake Gesture</a>           
         </div>

    <script>
                /* When the user clicks on the button,
                 toggle between hiding and showing the dropdown content */
            function myFunctio() {
                document.getElementById("myDropdown").classList.toggle("show");
            }

            // Close the dropdown if the user clicks outside of it
            window.onclick = function(event) {
                if (!event.target.matches('.dropbtn')) {

                    var dropdowns = document.getElementsByClassName("dropdown-content");
                    var i;
                    for (i = 0; i < dropdowns.length; i++) {
                        var openDropdown = dropdowns[i];
                        if (openDropdown.classList.contains('show')) {
                            openDropdown.classList.remove('show');
                        }
                    }
                }
            }
</script>

这是 CSS:

.dropbtn {
    cursor: pointer;
}

.dropbtn:hover, .dropbtn:focus {
    background-color: #3e8e41;
}
.dropdown {

    position: relative;*/
    display: inline-block;*/
}

.dropdown-content {
    display: none;
/*    position: absolute;*/
text-align:center;
    background-color: #fff400;
    min-width: 160px;
    overflow: auto;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

.dropdown a:hover {background-color: #dadada}

.show {display:block;}

这是我尝试过的方法,如果我在 button click 上提供此代码,一切正常。但是当我在 img click 上尝试同样的代码时,下拉菜单无法正确显示.

最佳答案

这是一个更新的片段。

  1. 第一个图像的 onclick 上有一个拼写错误 myFunction();。它应该是 myFunctio();

  2. 您需要将类 dropbtn 添加到第一张图片中

    if (!event.target.matches('.dropbtn')) { 更改为 if (!event.target.matches('#round')) {

function myFunctio() {
  document.getElementById("myDropdown").classList.toggle("show");
}

// Close the dropdown if the user clicks outside of it
window.onclick = function(event) {
  if (!event.target.matches('#round')) {
    document.getElementById("myDropdown").classList.toggle("show");
  }
}
.dropbtn {
  cursor: pointer;
}
.dropbtn:hover,
.dropbtn:focus {
  background-color: #3e8e41;
}
.dropdown {
  position: relative;
  */ display: inline-block;
  */
}
.dropdown-content {
  display: none;
  /*    position: absolute;*/
  text-align: center;
  background-color: #fff400;
  min-width: 160px;
  overflow: auto;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
}
.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}
.dropdown a:hover {
  background-color: #dadada
}
.show {
  display: block;
}
<img src="img/fastcall150.png" id="round" onclick="myFunctio();" />
<img src="img/gesturecall150.png" id="round" onclick="myFunctio();" class="dropbtn" />


<div id="myDropdown" class="dropdown-content">
  <a href="javascript:myFunc()"> Shake Gesture</a> 
</div>

关于javascript - 如何在 imageclick 上做下拉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37811412/

相关文章:

javascript - 使用 attr 检索元素而不是设置 attr

Javascript从数组中选择一个随机对象集

html - 如何在 twitter bootstrap 导航菜单上方放置一个固定的 div

css - 使用CSS对齐组合框中的文本

javascript - 如何对 id 定义为 php 函数的元素使用 javascript?

html - 水平线看起来不对。是什么原因?

javascript - Jquery:有什么方法可以让 val() 返回空字符串而不是空列表的 'undefined'?

javascript - 将先前的 event.target.id 存储在变量中

javascript - 检查元素的文本是否与另一个元素的文本相同

html - 为错误的多个输入字段添加红色边框