我根据自己的喜好设计了新的WP Admin Bar,并添加了一个“隐藏”按钮。我将按钮设置为slideToggle“wpadminbar”div。当我点击隐藏它时,div和搜索表单(嵌套在“wpadminbar”div中)两者切换。这是一个问题的视频...
代码很简单。
$(function() {
$("a#hide-admin").click(function(){
$(this).toggleClass('hidden', 1000);
$("#wpadminbar").slideToggle(1000);
});
});
当我将.slideToggle
更改为.toggle
时,会发生同样的事情。知道造成这种情况的原因和/或如何解决这个问题?
修改 这是所有相关的代码。
<div id="wpadminbar">
<div class="quicklinks">
<ul>
<li> Admin Bar links go here... </li>
</div>
<div id="adminbarsearch-wrap">
<form action="http://myurl.com"
method="get"
id="adminbarsearch"
name="adminbarsearch">
<input class="adminbar-input"
name="s"
id="adminbar-search"
type="text"
value=""
maxlength="150" /> <input type="submit"
class="adminbar-button"
value="Search" />
</form>
</div>
</div>
CSS:
#wpadminbar {
position: fixed;
top: 0;
height: 41px;
width: 100%;
background: url(images/adminbar-bg.png) repeat-x;
}
.quicklinks ul {
list-style:none;
margin:0;
padding:0;
text-align:center;
display: inline;
}
.quicklinks ul li {
display: inline;
}
.quicklinks ul li a {
display:inline-block;
padding:0 10px;
text-decoration: none;
font-weight: 700;
color: #fff;
line-height: 41px;
font-family: "Helvetica", Arial, sans-serif;
font-size: 12px;
text-shadow: 1px 1px 0 #111;
}
#adminbarsearch {
width: 250px;
height: 41px;
position: fixed;
right: 10px;
top: 10px;
}
#hide-admin {
display: block;
position: fixed;
right: 10px;
top: 51px;
font: bold 11px Helvetica, Arial, sans-serif;
color: #fff;
background: #C91D07;
-moz-border-radius: 20px;
-webkit-border-radius: 20px;
border-radius: 20px;
padding: 6px 10px;
cursor: pointer;
}
#hide-admin.hidden {
top: 10px !important;
}
答案 0 :(得分:2)
如果你的管理栏的CSS已经以除静态之外的任何方式定位(看起来可能是这样),为什么不只是为顶部位置设置动画?
$('a#hide-admin').click(function () {
$('#wpadminbar').add(this).animate({
top: '-=' + $('#wpadminbar').height()
}, 1000, function () {
// Callback to manipulate the #hide-admin button if desired
});
});
如果你想要一种来回切换的功能,你只需要做一点点思考。例如,您可以根据条形图是否仍在屏幕上以编程方式创建动画选项对象,正确修改{} .top值。
答案 1 :(得分:2)
您的问题与此处的position:fixed
#adminbarsearch {
width: 250px;
height: 41px;
position: fixed;
right: 10px;
top: 10px;
}
如果你删除它,你会看到切换现在正常工作