フラッシュで なった ナビゲーション メニューを ジャバスクリプトで 変えてくれと言う 依頼が 入って来た.

理由は 簡単だ. フラッシュは 政府で 指定した 標準 コーディング 検事を パスするの できない だからだ.(フラッシュを 維持しようと 割 場合 障害者を ための 代替 リンク, noscriptイン 場合の ページを 必ず 見えると する の ようだ. 正確な 内容は ウェブ接近盛宴旧ソ 文書を 参考すること ところする.)

jquery dropdown menu路 検索を すれば おびただしく 多い メニュー 方法が 出る. ところが http://shc.or.kr/ 形態の メニューは 寝る 出るの なかった.

そのため そのまま 分かって 具現を 日 見ることに した. どっちみち 絵も おびただしく 多くて いちいち 土方で 作ると したり した.(メニューは text路 する 蟹 仮装(家長) ましだ. alt 入れた イメージは 次善策だ.)

核心は visibility:hidden

下を 見よう. マウスを 何回 来て行った すれば おもしろい 仕事が 起る. メニューが 地 勝手に 引き続き 動く.(動画 参照)

メニューが 地 勝手に 引き続き 動く 場合

<ul class="menutest1">
  <li>メニュー1
    <ul>
      <li>メニュー1-1</li>
      <li>メニュー1-2</li>
    </ul>
  </li>
  <li>メニュー2
    <ul>
      <li>メニュー2-1</li>
      <li>メニュー2-2</li>
    </ul>
  </li>
</ul>
jQuery(function(){
  var $ = jQuery;
  $('.menutest1 li ul').hide();
  $('.menutest1 li').hover(function(){
    $(this).children().show('slow');
  }, function(){
    $(this).children().hide('slow');
  })
});

メニューが 中 閉まって 残っている 場合

もう一つの 場合は 下位メニューが 中 閉まって 重なって 出るように なる 場合(動画)だ.

.menutest2{position:relative;width: 600px; height:60px;}
.menutest2 li{float:left; margin-left:20px;}
.menutest2 li ul{width:500px;position:absolute;top:20px;}
.menutest2 li ul li{float:left; margin-left:20px;}
jQuery(function(){
  var $ = jQuery;
  $('.menutest2 li ul').hide();
  $('.menutest2 li').hover(function(){
    $(this).children().show('slow');
  }, function(){
    $(this).children().hide();
  })
});

上 場合は マウスが メニュー1おこるが メニュー2義 外で 抜けて 出る 場合 hide() 関数を 使って 下位メニューを 閉める 時 アニメーション 效果を 使うの なかった. ところが, 今度は 下位メニューが 消えるの ない バグが 生じた.

アニメーションで 下位メニューが だ 開かれること 前に マウスが 上位メニューで すり抜けて来る 場合に こういう 場合が 生ずる.

理由は 簡単だ. hide() 関数は display:none で cssを 作る 関数だ. ところが アニメーションが 持続して ある 時 display:noneを させれば ちょっと 間 中 見えた 次 アニメーションは 引き続き 作動しながら 再び 見えるように なる のだ.

そのため 使うと する 蟹 css義 visibility:hidden 速成だ.

まともに なった アニメーション メニュー

jQuery(function(){
  var $ = jQuery;
  $('.menutest3 li ul').hide();
  $('.menutest3 li').hover(function(){
    $(this).children().css({visibility: 'visible',display: 'none'}).show('slow');
  }, function(){
    $(this).children().css('visibility','hidden');
  })
});

上 コードが まともに なった アニメーション メニューを 作る コードだ.

核心は 簡単だ. マウスが 範囲を 去った 焚く visibility万 hiddenで 作る. それでは displayに 構わずに 一応 メニューは 閉まるように なる.

マウスが メニュー1,2に 上がった 時 visibilityを visible路 作って displayを noneで 作った 次 アニメーションを 始める. これ 過程が 連続的に 成り立つこと だから もう 実行されて あった アニメーションは 作動を 止めるように なる の ようだ.

上 コードと cssを 土台で まともに なった アニメーション メニューを 万たち 数 あること 望む.

これ 例題を ファイルで 添付する.

cfile25.uf.177112514D4BC88325016C.zip

- コメント機能はありません。コメントの代わりに[email protected]にメールを送ってください。