1

新しいWP管理バーを好みに合わせてスタイル設定し、[非表示]ボタンを追加しました。ボタンをslideToggle"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

あなたの問題は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 に答える
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 に答える