这是显示导航图标
的html代码 <div>
<div id="mob-nav" className={this.state.navbar + " right"}>
<div onClick={this.toggle.bind(this)}>
<div>click me</div>
<div></div>
<div></div>
</div>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">5</a></li>
<li><a href="#"> 6</a></li>
<li><a href="#">7</a></li>
<li><a href="#">8</a></li>
</ul>
</div>
<div id="left_panel">
<div className="title">
Naveen Tool
</div>
<div className="user_name">
Name
</div>
<div className="submenu">
<a href="structuring">Home</a>
<a href="#">Log out</a>
</div>
</div>
</div>
以下是切换导航
的css代码 #mob-nav {
position:fixed;
z-index:1000;
top:0px;
bottom:0px;
width:270px;
-webkit-box-shadow: inset -11px 0px 33px -10px rgba(51,51,51,1);
-moz-box-shadow: inset -11px 0px 33px -10px rgba(51,51,51,1);
box-shadow: inset -11px 0px 33px -10px rgba(51,51,51,1);
background-color: rgba(0,0,0,0.8);
transform: translate3d(-270px,0,0);
transition: transform 300ms ease;
}
.active-mob-nav #mob-nav {
transform: translate3d(0,0,0);
}
#mob-nav ul{
list-style:none;
width: 100%;
padding: 0px;
}
.table_border{
border: 1px solid black;
}
#mob-nav ul li a{
display:block;
text-align:center;
text-decoration:none;
color:#fff;
background-color:#2e2e2e;
padding:25px 0px;
}
#mob-nav ul li a:hover{
background-color:#2eb187;
}
.mob-nav-btn {
position:absolute;
left: 275px;
top: 18px;
line-height: 10px;
padding: 16px;
cursor:pointer;
border-radius: 0px 10px 10px 0px;
-moz-border-radius: 0px 10px 10px 0px;
-webkit-border-radius: 0px 10px 10px 0px;
}
.mob-nav-btn > div{
background-color: #f7f7f7;
width: 25px;
margin-top: 2px;
margin-bottom: 2px;
display: inline-block;
margin-left: auto;
margin-right: auto;
height: 2px;
transition: all 300ms;
}
.mob-nav-btn:hover > div{
width: 30px;
border-radius:0px;
}
In react我在点击导航按钮时试图设置状态.React状态正在改变,但导航栏没有打开。
toggle(){
this.setState({
navbar :"active-mob-nav"
})
}
我看到了开发人员工具中的元素,状态正在发生变化。 Navbar没有打开 有人可以解释我如何在导航栏上切换类,就像我在onClick()上那样?
答案 0 :(得分:1)
错误的嵌套顺序。
使用样式:
#mob-nav.active-mob-nav {
transform: translate3d(0,0,0);
}
并将className设置为顶级div:
<div id="mob-nav" className={this.state.navbar + " right"}>
答案 1 :(得分:0)
我认为问题出在你的CSS身上而没有反应。您的CSS(.active-mob-nav #mob-nav
)表示active-mob-nav
有一个id
mob-nav
的孩子,而mob-nav
有一个孩子.active-mob-nav
。尝试更改CSS以获得预期的行为