1

我根据自己的喜好设计了新的 WP 管理栏,并添加了“隐藏”按钮。我将按钮设置为滑动切换“wpadminbar”div。当我单击隐藏它时,div 和搜索表单(嵌套在“wpadminbar”div 中)都会切换。这是该问题的视频...

jQuery切换问题

代码非常简单。

$(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;
}
4

2 回答 2

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 值。

于 2011-02-24T17:30:09.057 回答
2

你的问题与position:fixed这里有关

#adminbarsearch {
width: 250px;
height: 41px;
position: fixed;
right: 10px;
top: 10px;
}

如果您删除它,您将看到切换现在可以正常工作

例如http://jsfiddle.net/circadian/YvnrS/2/

于 2011-02-24T17:49:58.647 回答