javascript - Font Awesome 图标下拉在移动设备上损坏

标签 javascript html css font-awesome

在我将 Font-Awesome 图标添加到我的导航栏之前,我的下拉菜单工作得很好。在我添加汉堡和时间图标来表示我的菜单后,它不再适用于移动设备和桌面设备。

在第一个问题之后,我尝试更改我的 JS 和调用我的 JS 函数的元素;我设法让它在桌面上工作,但移动仍然坏了。

问题:
对于移动设备,当我单击汉堡图标时,没有任何反应。
对于桌面,当我点击汉堡/十字图标时,它正常工作

我试图在下面的代码片段中重现该问题。
不幸的是,我未能重现问题,所以我只是添加了一个指向我的测试站点的链接。

我的问题:如何使用 Font-Awesome 图标作为移动按钮?

主页是唯一添加图标的页面,用于显示问题。

测试站点链接:https://www.azsmtest.com

function dropdown() {
  "use strict";
  var getBurg = document.getElementById('burg');
  var getCross = document.getElementById('cross');
  var nav_items = document.getElementsByClassName('nav-item');
  var nav_list = document.getElementById('navList');


  if (getBurg.style.display === 'none') {
    getBurg.style.display = 'block';
    getCross.style.display = 'none';
    nav_list.style.display = 'none';


    for (var i = 0; i < nav_items.length; i++) {
      nav_items[i].style.display = 'none';
    }

  } else {
    getBurg.style.display = 'none';
    getCross.style.display = 'block';
    nav_list.style.display = 'block';


    for (var j = 0; j < nav_items.length; j++) {
      nav_items[j].style.display = 'block';
    }


  }
}
.fixed-nav {
  font-weight: bold;
  top: 0;
  left: 0;
  width: 100%;
  font-size: .8em;
  position: fixed;
  height: 50px;
  box-sizing: border-box;
  text-align: center;
  box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16), 0px 3px 6px rgba(0, 0, 0, 0.23);
  z-index: 1;
}

.fixed-nav ul {
  padding: 0;
  list-style-type: none;
  list-style-image: none;
  margin-top: -3px;
}

.fixed-nav li {
  box-sizing: border-box;
}

.fixed-nav li:hover {
  display: block;
}

.fixed-nav ul li a {
  text-decoration: none;
  margin: 0px;
}

.fixed-nav ul li a:hover {}

.fixed-nav a {
  text-decoration: none;
}

#burg {
  background: none;
  position: absolute;
  top: 0;
  right: 0;
  line-height: 45px;
  padding: 2px 15px 0 15px;
  border: 0;
  vertical-align: middle;
  font-size: 30px;
  font-weight: bold;
  cursor: pointer;
  outline: none;
}

#cross {
  background: none;
  position: absolute;
  top: 0px;
  right: 0px;
  padding: 8px 15px 0px 15px;
  font-size: 30px;
  border: 0;
  font-weight: bold;
  cursor: pointer;
  outline: none;
  display: none;
}

.nav-item {
  position: relative;
  height: 70px;
  width: 100%;
  display: none;
  font-size: 20px;
  cursor: pointer;
}

.nav-item a {
  display: block;
  height: 100%;
}

.nav-item:hover {
  background-color: #DFDFDF;
}

.nav-item:hover a {
  text-decoration: none;
}

#navList {
  margin-top: 50px;
  height: 100vh;
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>

<head>


  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/solid.css" integrity="sha384-VGP9aw4WtGH/uPAOseYxZ+Vz/vaTb1ehm1bwx92Fm8dTrE+3boLfF1SpAtB1z7HW" crossorigin="anonymous">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/fontawesome.css" integrity="sha384-1rquJLNOM3ijoueaaeS5m+McXPJCGdr5HcA03/VHXxcp2kX2sUrQDmFc3jR5i/C7" crossorigin="anonymous">
</head>

<body>

  <nav class="fixed-nav">
    <div id="burg">
      <i id="burger_icon" class="fas fa-bars" onClick="dropdown()"></i>
    </div>
    <div id="cross">
      <i id="cross_icon" class="fas fa-times" onClick="dropdown()"></i>
    </div>
    <ul id="navList">
    <div class="nav-item">
      <a href="#"><li>Inventory</li></a>
    </div>
    <div class="nav-item">
      <a href="#"><li>Finance</li></a>
    </div>
    <div class="nav-item">
      <a href="#"><li>About Us</li> </a>
    </div>
    <div class="nav-item">
      <a href="#"><li>Contact Us</li></a>
    </div>
    </ul>

  </nav>


</body>

</html>

最佳答案

我希望这对你有用,我一直在使用 FA 图标作为按钮,将它们引入另一个元素(如 div 或链接)中,然后使用 JavaScript 使其作为按钮工作。示例:

<div id="button">
  <i class="fas fa-sort-down"></i>
</div>

<script>
 $(document).ready(() => {
   $('#button').click(//anything you want);
 });
</script>

您还可以在 div 中使用 onClick 属性:

<div id="button" onClick="">
  <i class="fas fa-sort-down"></i>
</div>

希望这对您有所帮助,我从来没有遇到过错误或无法使用像这样的 FA 图标在移动设备或桌面设备上工作。

关于javascript - Font Awesome 图标下拉在移动设备上损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52748926/

相关文章:

javascript - 使用chrome.notification.on创建chrome.notification.create在Firefox WebExtension插件中单击

Javascript Ajax 将 onreadystatechange 的结果保存在全局变量中

javascript - HTML菜单点击跳转到div

javascript - 使用 DOM 绘制钟摆

javascript - ionic 选择 : pre selecte value is invisible until clicked once

javascript - Djangojs 应用程序的翻译错误 Django

jquery - 我如何使用 jQuery 隐藏或显示基于 asp.net 角色的表行?

html - 我可以使用同一个 anchor 链接到多个元素吗?

css - 如何使用 bootstrap 或 css 隐藏或更改 html 按钮上的选择装饰器?

css - 为什么背景图片加载不出来?