gpt4 book ai didi

javascript - 通过 CSS/HTML 单击按钮后展开导航菜单

转载 作者:行者123 更新时间:2023-11-28 17:27:58 25 4
gpt4 key购买 nike

想象一下我有这样的窄导航菜单:

缩小菜单:

.narrow-menu {
width: 60px;
/* Some more conditions */
}

|[X]| <-- after clicking this button menu should expand as below
| |
| A |
| B |
| C |
| D |
| E |
| F |
| G |

如您在上面的示例中看到的那样,有 [X] 按钮,单击它后菜单应展开如下:

完整菜单:

.full-menu {
width: 300px;
/* Some more conditions */
}

|Profile Photo [X]| <-- after clicking this button menu should became narrow again
|Some Info |
| |
| Home |
| News |
| Contacts |
| About Us |
| |

如您在上面的示例中所见,再次单击 [X] 按钮后,它应该会再次缩小菜单。

当然这些菜单有不同的 HTML div,所以也许为了实现它我根本不需要编辑 CSS?您有什么想法可以实现吗?

您可以在 JS fiddle 测试它

最佳答案

好吧,我相信有一种更简单、更简洁的方法可以做到这一点。但是这个解决方案有效

为了这个工作。你需要 jQuery 库

在 jsfiddle 中,只需单击它显示 JAVASCRIPT 的位置,然后从框架/扩展中选择 Jquery 3.1.0

在你的元素中添加

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 

在你的<head>

也改变了一点 html 结构。 (将导航标题移到容器内)

参见 jsfiddle

下面的代码片段:

var narrowbut = $(".leftside-narrow li:first-child a"),
fullbut = $(".profile-info li:first-child a")

$(narrowbut).click(function(){
$(".leftside-narrow").animate({'left':'-200%'},350);
$(".leftside").animate({'left':'0%'},350);

});
$(fullbut).click(function(){
$(".leftside-narrow").animate({'left':'0%'},350);
$(".leftside").animate({'left':'-200%'},350);

});
.leftside-narrow,.leftside { position:absolute;top:0}
.leftside { left:-200%;}

.leftside-container {
position: absolute;
height: 100%;
margin-bottom: -350px !important;
padding-bottom: 170px !important;
}
.leftside-narrow {
width: 100px;
}
.leftside {
position: relative;
width: 300px;
float: left;
background-color: #042643;
height: 100%;

}
.leftside a {
color: #9aa8b3;
}

.submenu {
list-style: none;
padding: 0;
margin: 0;
}
.submenu a {
background-color: #5d82a0;
padding-left: 60px;
}
/* hover behaviour for links inside .submenu */
.submenu a:hover {
background-color: #5d82a8;
}
.submenu {
overflow: hidden;
max-height: 0;
-webkit-transition: all 0.5s ease-out;
}
.mainmenu li:hover .submenu {
display: block;
max-height: 200px;
}
.leftside ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 300px;
/* position: fixed;*/
height: 100%;
overflow: auto;
background-color: #042643;
}
.leftside-menu a img {
margin-left: 10px;
margin-right: 10px;
-webkit-filter: invert(100%);
}

li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
border-bottom: solid #284158 1px;
}

/* Change the link color on hover */
li a:hover {
background-color: #5d82a0;
color: white;
height: 100%;
}
li a.active {
background-color: #4CAF50;
color: white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="leftside-container">

<div class="leftside-narrow">
Narrow Menu
<li><a href="#"> [X] </a></li>
<li><a href="#news"><img src="images/news.png"/></a></li>
<li><a href="#contacts"><img src="images/contacts.png"/></a></li>
</div>

<div class="leftside">
Full Menu
<div class="leftside-menu">
<div class="profile">
<div class="profile-info">
<li><a href="#"> [X] </a></li>
<span class="profile-span name">John Doe</span><br>
<span class="profile-span">Designer</span><br>
</div>
</div>
<nav class="navigation">
<ul class="mainmenu">
<li><a href="#news"><img src="images/news.png"/> News</a></li>
<li><a href="#contacts"><img src="images/contacts.png"/>Contacts</a>
<ul class="submenu">
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
</ul>
</li>
</ul>
</nav>
</div> <!-- End of leftside-menu -->
</div> <!-- End of leftside -->
</div>

或者你可以使用这个 Slide Effect使用 slide而不是 left:-200%

例如:

$(".leftside-narrow").hide('slide', {direction: 'left'}, 1000);
$(".leftside").show('slide', {direction: 'right'}, 1000);

当然还有更多的代码让它工作。但这意味着上传 jQueryUI 库

关于javascript - 通过 CSS/HTML 单击按钮后展开导航菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38656545/

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