我如何改变我的菜单样式点击
How can I change the styles of my menu on click?
如何更改用户选择的活动菜单/子菜单的样式?当我单击子菜单时,我希望该子菜单及其父菜单具有不同的样式(如悬停,但永久)。
/*jQuery time*/
$(document).ready(function(){
$("#accordian h3").click(function(){
//slide up all the link lists
$("#accordian ul ul").slideUp();
//slide down the link list below the h3 clicked - only if its closed
if(!$(this).next().is(":visible"))
{
$(this).next().slideDown();
}
})
})
/*custom font for text*/
@import url(http://fonts.googleapis.com/css?family=Nunito);
/*CSS file for fontawesome - an iconfont we will be using. This CSS file imported contains the font-face declaration. More info: http://fortawesome.github.io/Font-Awesome/ */
@import url(http://thecodeplayer.com/uploads/fonts/fontawesome/css/font-awesome.min.css);
/*Basic reset*/
* {margin: 0; padding: 0;}
body {
background: #4EB889;
font-family: Nunito, arial, verdana;
}
#accordian {
background: #004050;
width: 250px;
margin: 100px auto 0 auto;
color: white;
/*Some cool shadow and glow effect*/
box-shadow:
0 5px 15px 1px rgba(0, 0, 0, 0.6),
0 0 200px 1px rgba(255, 255, 255, 0.5);
}
/*heading styles*/
#accordian h3 {
font-size: 12px;
line-height: 34px;
padding: 0 10px;
cursor: pointer;
/*fallback for browsers not supporting gradients*/
background: #003040;
background: linear-gradient(#003040, #002535);
}
/*heading hover effect*/
#accordian h3:hover {
text-shadow: 0 0 1px rgba(255, 255, 255, 0.7);
}
/*iconfont styles*/
#accordian h3 span {
font-size: 16px;
margin-right: 10px;
}
/*list items*/
#accordian li {
list-style-type: none;
}
/*links*/
#accordian ul ul li a {
color: white;
text-decoration: none;
font-size: 11px;
line-height: 27px;
display: block;
padding: 0 15px;
/*transition for smooth hover animation*/
transition: all 0.15s;
}
/*hover effect on links*/
#accordian ul ul li a:hover {
background: #003545;
border-left: 5px solid lightgreen;
}
/*Lets hide the non active LIs by default*/
#accordian ul ul {
display: none;
}
#accordian li.active ul {
display: block;
}
<script src="http://thecodeplayer.com/uploads/js/jquery-1.7.1.min.js"></script>
<script src="http://thecodeplayer.com/uploads/js/prefixfree-1.0.7.js"></script>
<div id="accordian">
<ul>
<li>
<h3><span class="icon-dashboard"></span>Dashboard</h3>
<ul>
<li><a href="#">Reports</a></li>
<li><a href="#">Search</a></li>
<li><a href="#">Graphs</a></li>
<li><a href="#">Settings</a></li>
</ul>
</li>
<!-- we will keep this LI open by default -->
<li class="active">
<h3><span class="icon-tasks"></span>Tasks</h3>
<ul>
<li><a href="#">Today's tasks</a></li>
<li><a href="#">Urgent</a></li>
<li><a href="#">Overdues</a></li>
<li><a href="#">Recurring</a></li>
<li><a href="#">Settings</a></li>
</ul>
</li>
<li>
<h3><span class="icon-calendar"></span>Calendar</h3>
<ul>
<li><a href="#">Current Month</a></li>
<li><a href="#">Current Week</a></li>
<li><a href="#">Previous Month</a></li>
<li><a href="#">Previous Week</a></li>
<li><a href="#">Next Month</a></li>
<li><a href="#">Next Week</a></li>
<li><a href="#">Team Calendar</a></li>
<li><a href="#">Private Calendar</a></li>
<li><a href="#">Settings</a></li>
</ul>
</li>
<li>
<h3><span class="icon-heart"></span>Favourites</h3>
<ul>
<li><a href="#">Global favs</a></li>
<li><a href="#">My favs</a></li>
<li><a href="#">Team favs</a></li>
<li><a href="#">Settings</a></li>
</ul>
</li>
</ul>
</div>
添加以下javascript代码:
$("#accordian h3").click(function(){
$('.active').removeClass('active');
$(this).addClass('active');
});
$('#accordian li a').click(function(){
$('.submenu-active').removeClass('submenu-active');
$(this).addClass('submenu-active');
});
和这个CSS:
.active{
text-shadow: 0 0 1px rgba(255, 255, 255, 0.7);
color: red; /* NOTE i INTENTIONALLY ADDED RED COLOR TO ILLUSTRATE BETTER */
}
.submenu-active{
background: #003545;
border-left: 5px solid lightgreen;
}
try this DEMO
解释:
当您单击菜单项时,您希望从先前活动的项中删除.active
类,并将其设置为所单击的项。同样适用于子菜单项,我添加.submenu-active
类,而不是.active
你可以添加.selected
类到你的CSS文件:
.selected {
background-color: <your_color>;
}
在你的Javascript文件中:
$('#accordian li ul li').click(function(){
$('#accordian li ul li').removeClass('selected');
$(this).addClass('selected');
});
用你想要的样式创建一个css类。添加一些类到您的li(例如class="li_to_click"
)。然后使用以下代码:
$('.li_to_click').click(function() {
$(this).toggleClass('class_with_style');
$(this).parent().toggleClass('class_with_style');
});
您可以根据需要更改代码
相关文章:
- 我的下拉菜单中的链接不起作用
- 我的响应菜单在移动版中不起作用
- 何时可以;我的用户脚本在Javascript中触发右键单击(上下文菜单)
- 我的CSS/Javascript下拉菜单测试代码出了什么问题
- WordPress下拉菜单在我的主题中不起作用
- 使用vue路由器,我如何才能使菜单选择的样式
- 为什么我的引导程序的下拉菜单不起作用
- 为什么我的修复菜单在滚动时无法顺利运行
- 如何使我的下拉菜单显示/对齐
- 我的菜单栏隐藏在PasteBin的javascript下
- 如何为我的菜单创建平滑的动画
- 无法滚动我的汉堡菜单
- 我的菜单是't切换“;全屏”;使用jQuery正确地初始化
- 为什么我的响应CSS菜单会迫使页面内容向上跳转
- 为什么我的下拉菜单在本地服务器上可以工作,但当我推到heroku时却不能
- 当我的响应菜单打开时,我如何删除用户转到侧面的功能
- 为什么我的菜单没有't下拉列表
- 如何隐藏我的下拉菜单
- 如何在 jQuery 中为链接我的“活动”滚动菜单创建例外
- 我想让我的菜单效果消失