今サイトを作成しています。
jqueryを使用していますがjsは弱いです。
http://www.tora-corp.com/co/miku2/test/slide.html
こちらのテストサイトですが、
マウスをメニュー上で移動した際に追尾するプログラムと
ABOUTのところをクリックしたときにドロップダウンする
プログラムとがidの箇所が重なるため、どのように表記すれば
良いか分からず大変困っております。
プロの方のご指導を是非頂きたく存じます。
どうぞよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
きちんと作成されているプラグインであれば、同じ要素をトリガーにしても、処理内容が異なっていれば問題なく設置できるはずです。
処理内容が同じ要素に対して影響を与えるような場合は、その処理同士が干渉する可能性もありますが、ご提示のものの場合処理の対象要素が異なっていますので、その点では問題はないと想像します。(確認はしていません)
ただし、ご提示のまま設置した場合、プルダウンのサブメニューとマジックラインの位置が重なってしまうため、表示上マジックラインが隠れてしまう可能性があります。
あるいは、マジックラインを重なり順で上に置いた場合は、そこをマウスが通過する際にマウスアウトのイベントが発生することが予想されます。(サブメニューが閉じてしまう)
マジックラインの位置をメインメニューの上側に設置したり、メインメニューの裏側におくなどの工夫をすればよいだろうと思いますが、単に設置した場合にどのようになるかはわかりません。
一方で、それほど複雑な処理でもなさそうですので、ご自分で自作するという方法もあります。
(必要な機能だけに絞って実現するのなら、それほど複雑なスクリプトにはなりません。ライブラリ化しようとすると、少し複雑になるかも)
ごく単純化した例をご参考までに。
* メニュー部は画像ではなくテキストにしてあります。
* インデント部分の全角空白は半角などに
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>test</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<style type="text/css">
body{ background-color:#000; }
div.line{ height:2px; overflow:hidden; background-color:#fff; color:red;}
#nav, #nav ul, #nav li{ list-style-type:none; margin:0; padding:0; }
#nav{ font-size:20px; font-weight:bold; color:#fff; height:45px; width:840px; margin:0 auto; }
#nav a{ text-decoration:none; }
#nav a:link, #nav a:visited{ color:#fff; }
#nav li.main{ position:relative; float:left; }
#nav li.main a{ display:block; padding:12px 20px; }
#nav ul{ position:absolute; left:0; top:44px; background-color:#555; }
#nav ul li{ border-top:1px solid #fff; }
#nav ul li a{ width:150px; padding:16px 20px; }
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7. …
</head>
<body>
<div class="line"> </div>
<ul id="nav">
<li><a href="#">About</a>
<ul>
<li><a href="#">Concept</a></li>
<li><a href="#">Aburi brand</a></li>
<li><a href="#">Philosophy</a></li>
<li><a href="#">Sustainability</a></li>
</ul>
</li>
<li><a href="#">Menu</a>
<ul>
<li><a href="#">Menu-1</a></li>
<li><a href="#">Menu-2</a></li>
<li><a href="#">Menu-3</a></li>
</ul>
</li><li><a href="#">Beverrages</a>
<ul>
<li><a href="#">Beverrages-1</a></li>
<li><a href="#">Beverrages-2</a></li>
<li><a href="#">Beverrages-3</a></li>
</ul>
</li>
</li><li><a href="#">Private Dining</a></li>
</li><li><a href="#">Event</a></li>
</li><li><a href="#">Book now</a></li>
</li><li><a href="#">Contact</a></li>
</ul>
<div style="background-color:#666; height:400px; clear:both;">記事部分</div>
<script type="text/javascript">
(function(){
// 初期セットアップ
$("#nav>li").addClass("main").find("ul").css({opacity: 0.7, display: "none"})
.find("li:first-child").css("border", 0);
var line = $("<div></div>");
line.appendTo(line.clone().css({position:"relative", top:-4, zIndex:-10}))
.parent().insertAfter($("#nav"));
line.css({height:2, position:"absolute", backgroundColor:"#f00", overflow:"hidden"});
// メニューのホバーアクション
$("#nav>li").hover(function(){
var t = $(this);
$("ul", t).slideDown();
line.css("width", t.width()).stop(1, 1).animate({left: t.offset().left});
}, function(){
$("ul", this).stop(1, 1).slideUp();
});
// サブメニューのホバーアクション
$("#nav ul li a").hover(function(){
$(this).css("backgroundColor", "#888");
}, function(){
$(this).css("backgroundColor", "#555");
});
})();
</script>
</body>
</html>
No.1
- 回答日時:
>ABOUTのところをクリックしたときにドロップダウンする
>プログラムとがidの箇所が重なるため、どのように表記すれば
>良いか分からず大変困っております。
ごめん、見てみたけど言ってることが良くわからなかった。
ABOUTのところはクリックしなくてもメニューが出てくるみたいだし、
idの箇所が重なるという表現も良くわからない。
あなたがどのような意図でサイトを作成しているかわからないから
・こうしたいんだけど、こうなってしまう
と説明が欲しい。
この回答への補足
文章足らずで申し訳ありません。
現在、2種類のメニューがある状態になっております。
(1)ホーム~マジックショップ
└マウスにバーが追随する動き
(2)ABOUT~CONTACT
└ABOUTへのマウスオーバーでドロップダウンする動き
これらは異なるjavascriptになるのですが
私の出口としては、(2)のメニューに(1)のマウスが追随する動きを
追加したいと考えております。
しかし、いずれのプログラムも
ソースを見ていくと、ul、liにかかるように
思われるため、両方のプログラムを(2)のメニューに反映するには
どうすればいいのか頓挫しているところでございます。
何卒よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- システム ホームページの仕組みについて 3 2022/08/16 14:33
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- SEO googleサーチコンソールで、重複URLが多数発生、その修正方法について 2 2023/06/23 16:15
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どの<li><a> が押されたか判別...
-
フォームのテキストエリアに検...
-
文字と数字が混在する要素のsor...
-
折りたたみメニューがFirefoxで...
-
「jQuery」アコーディオンメニ...
-
質問に答えていくと、回答によ...
-
アコーディオンメニューの開閉制御
-
JavaScriptで、?マークとコロ...
-
助けてください… jQuery 左右に...
-
JQueryタブのアクティブ アン...
-
jQueryのhide,showで中の要素が...
-
ホームページビルダー15 メニュ...
-
3階層メニューについての質問...
-
jqueryで複数のIDをまとめたい...
-
クリックしたら文章が入れ替わ...
-
jquery ドロップダウンメニュー...
-
MAX関数を使ってからLEFT JOIN...
-
前回の質問の続き
-
textareaに画像を表示したい
-
Javascriptで画像を水面のよう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jqueryのsortableで一部ソート...
-
「jQuery」アコーディオンメニ...
-
javascript テキストエリアを1...
-
jquery ドロップダウンメニュー...
-
jQueryでネスト構造の<li>がク...
-
クリックした<a>タグのみにClas...
-
jQueryの配列の渡し方について
-
for(var i=0;...) の i の値を...
-
JavaScriptによる疑似プルダウ...
-
jQueryのeqで最後からn番目以降...
-
javascriptでEnterキーをtabキ...
-
Jquery タブで、4つのliのうち...
-
【javascript で動的に a タグ...
-
どの<li><a> が押されたか判別...
-
マウスオーバーで開閉できるア...
-
同一ページ内で、任意の文字列...
-
jqueryプルダウンメニュー個別着色
-
JavaScript インクリメントの書...
-
複数の画像をランダム(シャッ...
-
タブ切り替えの初期表示について
おすすめ情報