これを読む前に、このウェブサイトにアクセスして、私が何をしようとしているのかを確認してください。
ご覧のとおり、メニューの下に赤い矢印があり、私が達成しようとしているのは...メニューボタンにカーソルを合わせると、矢印は同じボタンに移動します。ページ。
理想的には、矢印をデフォルトのボタンに戻し、別のメニュー ボタンをクリックするとデフォルトのボタンが変更されるようにしたいと考えています。
例などへのリンクを知っていれば...本当に感謝します!
お時間をいただきありがとうございます。
ケリー×
これを読む前に、このウェブサイトにアクセスして、私が何をしようとしているのかを確認してください。
ご覧のとおり、メニューの下に赤い矢印があり、私が達成しようとしているのは...メニューボタンにカーソルを合わせると、矢印は同じボタンに移動します。ページ。
理想的には、矢印をデフォルトのボタンに戻し、別のメニュー ボタンをクリックするとデフォルトのボタンが変更されるようにしたいと考えています。
例などへのリンクを知っていれば...本当に感謝します!
お時間をいただきありがとうございます。
ケリー×
あなたはこのようなことをすることができます:
スパンを使用して、HTMLのnav /menulisの下にbg矢印を追加します。
<ul class="nav">
<li>
<a href="#">Menu 1</a>
<span class="arrow"> </span>
</li>
<li>
<a href="#">Menu 2</a>
<span class="arrow"> </span>
</li>
</ul>
CSS:
.nav {
font-size: anypx;
list-style: none outside none;
margin: 0;
padding: 0;
position: relative;
}
.nav li {
background: #whatev;
display: block;
float: left;
height: anypx;
line-height: anypx;
padding: 0;
text-align: center;
}
.nav li a {
color: #any;
display: block;
padding: any;
position: relative;
text-decoration: none;
width: auto;
}
.arrow {
background: url("images/arrow.png") no-repeat scroll 0 9px transparent;
display: none;
height: anypx;
text-indent: -9999px;
width: whatevs;
z-index: 9999;
}
そして最後に、それを機能させるJS / Jquery:
$(document).ready(function(){
Your_menu();
});
function Your_menu(){
$(".nav li").hover(function(){
$(this).find('.arrow').css({visibility: "visible",display: "none"}).show();
},function(){
$(this).find('.arrow').css({visibility: "hidden"});
});
}
これがこれを示しているサイトです:)
「ボタン」アンカーを作成します。css set を使用:hoverして、矢印を含む背景画像を設定するルールを作成します。
そこにはたくさんの CSS チュートリアルがあり、NettutsとWebdesigntutsにはたくさんのナビゲーション記事があります。または、他の人をエミュレートすることに慣れている場合は、好きなサイトを見つけて、彼らがどのようにそれを行ったかを理解するまでソースを分解してください.
あなたがやっていることを達成するためにjavascriptはまったく必要ないことに注意してください. いくつかのアニメーションが必要な場合を除き、CSS でその作業のほとんどを処理できますが、私の意見では、純粋な CSS の方が優れたアプローチです。
純粋な CSS ソリューション
この回答を確認してください。
ある要素にカーソルを合わせて別の要素に影響を与える方法はありますか?
したがって、次のようになります。
#thething {
margin: 0;
}
.classone:hover + #thething {
margin-top: 10px;
margin-left: 10px;
}
それらが親 div 内の隣接する兄弟である場合。
DEMOmargin-leftの左側に対して矢印を移動するだけですtd
$("#Arrow").css({"margin-left":$(this).position().left+($(this).width()/2)-2});
Tp do thisページの head セクションにjQueryライブラリを追加します
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
このコードを外部 js ファイルに追加し、ページの head セクションに追加します
$(function(){
$("#MenuPosition").on("hover","td",function(){
$("#Arrow").css({"margin-left":$(this).position().left+($(this).width()/2)-2});
});
});
編集:矢印の元の位置を復元するために使用
$(function(){
currentPos = $("#Arrow").css("margin-left");
$("#MenuPosition").on("hover","td",function(){
$("#Arrow").css({"margin-left":$(this).position().left});
});
$("#MenuPosition").on("mouseout","td",function(){
$("#Arrow").css({"margin-left":currentPos});
});
});
注 :計算部分を参照して修正してください。
PS:オフィスからのログアウト時間のため、修正できません;)。しかし、私はあなたがそれを行うためのロジックを持っていると思います
まず、DOCTYPE が間違っていることです。
<!DOCTYPE html PUBLIC "">
これにより、ページが quirk モードで読み込まれます。に変更します
<!DOCTYPE html>
HTML5 の場合、または FSI と FPI を含む完全なものを使用します。
<table>2 つ目は、ナビゲーションに を使用していることです。深刻な問題はありませんが、人々は使用する傾向がありますul
の場合、:hover単に使用できます
#MenuPosition table tbody tr td:hover
{
background-image: url("/images/Arrow.jpg");
}
矢印を正しく配置するには、またはをpaddings使用する必要marginsがあるかもしれません。display: blockdisplay: inline-block