gpt4 book ai didi

javascript - 单击时,将先前单击的图标切换回其原始状态

转载 作者:行者123 更新时间:2023-11-28 17:03:54 24 4
gpt4 key购买 nike

我在导航栏上有两个下拉菜单,只要单击该 anchor ,图标就会切换,但我不知道如何在单击单独的子菜单时重置一个。我在问是否有办法通过现在的布局来实现这一目标,如果没有,我该如何实现?

如果整件事中充斥着菜鸟错误,我也提前表示歉意。

我试图压缩 JSfiddle尽可能多,但您可能需要展开侧面部分才能在右侧看到受影响的图标。我省略了响应部分。

$(document).ready(function() {
$('.menu-toggle').click(function() {
$('nav').toggleClass('active')
})
$('ul li').click(function() {
$(this).siblings().removeClass('active');
$(this).toggleClass('active');
})
})
$("nav ul li a").click(function() {
$(this).find("i").toggleClass("fa-angle-down fa-angle-up");
});
body {
margin: 0;
padding: 0;
font-family: "Helvetica Neue", sans-serif;
background: url(img/sunset.jpg);
background-attachment: fixed;
background-position: center;
}

header {
position: absolute;
top: 0;
left: 0;
padding: 0 20px;
background: #000000;
width: 100%;
box-sizing: border-box;
}

.header-icons {
color: white;
}

header nav ul li a.active span {
color: red;
}

header nav {
float: right;
}

header nav ul {
margin: 0;
padding: 0;
display: inline-flex;
}

header nav ul li {
list-style: none;
position: relative;
}

.sub-menu {
color: fff;
}

header nav ul li ul {
position: absolute;
left: 0;
display: none;
}

header nav ul li.active ul {
display: block;
}

header nav ul li ul li {
display: block;
width: auto;
text-align: center;
}

header nav ul li ul li a {
background: linear-gradient(#000000, #34282C);
border-style: inset;
border-color: #000;
}


/*full screen header*/

header nav ul li a {
font-family: "Helvetica Neue", sans-serif;
height: 50px;
line-height: 50px;
padding: 0 20px;
color: #fff;
text-decoration: none;
display: block;
}

header nav ul li a:hover {
transition: .25s;
font-weight: ;
color: #000000;
background: #2196f3;
}

header nav ul li a.active {
background: #25383C;
font-weight: normal;
color: #fff;
}

header nav ul li a.active:before {
content: '\f096';
font-family: fontAwesome;
font-size: 25%;
position: absolute;
line-height: 50px;
bottom: 20px;
right: 2px;
color: #fff;
cursor: pointer;
}

.menu-toggle {
color: #fff;
float: right;
line-height: 50px;
font-size: 24px;
cursor: pointer;
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<head>
<title>Practice</title>
<link rel="stylesheet" type="text/css" href="CSS/style.css">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css">
</head>

<body>
<header>
<nav>
<ul>
<li><a href="#"><span class="header-icons"><i class="fas fa-pen-square fa-fw"></i></span>Services<span class="sub-menu"><i class="fas fa-angle-down fa-fw"></i></span></a>
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</li>
<li><a href="#"><span class="header-icons"><i class="far fa-image fa-fw"></i></span>Portfolio<span class="sub-menu"><i class="fas fa-angle-down fa-fw"></i></span></a>
<ul>
<li><a href="#">Link </a></li>
<li><a href="#">Link </a></li>
<li><a href="#">Link </a></li>
<li><a href="#">Link </a></li>
</ul>
</ul>
</nav>
</div>
<div class="menu-toggle"><i class="fa fa-bars" aria-hidden="true"></i>
</div>
</header>
</body>

最佳答案

这是另一种解决方案,仅供您引用。我检查 li 标签下的事件类,然后删除或添加 i 标签上的 fa-angle-down 或 fa-angle-up 类。

  $('.menu-toggle').click(function(){
$('nav').toggleClass('active')
})
$('ul li').click(function(){
$(this).siblings().removeClass('active');
$(this).toggleClass('active');

// Check for active class
if($(this).hasClass('active')){
$(this).parent().find("i").removeClass("fa-angle-up").addClass("fa-angle-down");
}
$(this).find("i").toggleClass("fa-angle-down fa-angle-up");
})

https://jsfiddle.net/80wne34L/79/

关于javascript - 单击时,将先前单击的图标切换回其原始状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50900621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com