ドロップダウンメニュー(親メニューだけgif画像で子メニューはcssで表示)を作りたいと思っています。
javascript又はCSS+htmlを使ってドロップダウンメニューを作りたいと良いサンプルを探しております。
親メニューは画像で、子メニューはcssで表示させたいと思います。
サイドメニューとして、縦並びに配置して、オンマウスで右側に子メニューのリストが展開するように。
ネット上でサンプルを探しているのですが、全部cssで展開だったり、全部画像で展開だったりして、
親メニューだけ画像で、子メニューはcssで表示というのがなかなかみつかりません。。
超超初心者の私にどなたかご教授願えないでしょうか。
よろしくお願い致します。m(_ _)m
No.3ベストアンサー
- 回答日時:
続き
CanvasMenu.jsは
var menuitem = [
{src:"/image/アイテム1画像.jpg",w:200,h:100,x:0,y:0},
{src:"/image/アイテム2画像.jpg",w:200,h:100,x:0,y:100},
{src:"/image/アイテム3画像.jpg",w:200,h:100,x:0,y:200},
{src:"/image/アイテム4画像.jpg",w:200,h:100,x:0,y:300},
{src:"/image/アイテム5画像.jpg",w:200,h:100,x:0,y:400}
]
var count = 0;
var canvas = document.getElementById("menumap");
/*@cc_on @if (@_jscript_version <= 5.8)
canvas = G_vmlCanvasManager.initElement(canvas);
/*@end@*/
var ctx = canvas.getContext('2d');
for(var i=0;i<menuitem.length;i++){
var img= new Image();
img.src = menuitem[i].src + "?" + new Date().getTime();
img.onload=(function(obj){
return function(event){
ctx.drawImage(this,obj.x,obj.y,obj.w,obj.h);
}
})(menuitem[i]);
}
canvas.onmousemove = function(e){
var submenu = [];
var target = /*@cc_on @if (@_jscript_version <= 5.8)
document.getElementById("menumap");@else@*/e.target;/*@end@*/
var rect = target.getBoundingClientRect();
var x = (e?e.clientX:event.clientX);
var y = (e?e.clientY:event.clientY);
var mouseX = x - rect.left;
var mouseY = y - rect.top;
for(var i=0;i<menuitem.length;i++){
if((menuitem[i].x < mouseX &&
mouseX < (menuitem[i].x + menuitem[i].w))
&& (menuitem[i].y < mouseY &&
mouseY < (menuitem[i].y + menuitem[i].h))
){
submenu = /*@if (@_jscript_version >= 5.8)
document.querySelectorAll("div.main div.right ul");
@elif (@_jscript_version < 5.8)
document.getElementById("submenu").getElementsByTagName("UL");@else@*/
document.querySelectorAll("div.main div.right ul");/*@end@*/
submenu[i].style.display = "block";
for(var j=0;j<submenu.length;j++)
if(!(i==j)) submenu[j].style.display = "none";
}
}
}
※おやっ、IE8でも-ms-column-count:2;とか-msbreak-after: column;
がきかないぞ!
まあこの辺はfloat使って配置するように変えればいいだけだから..。
No.2
- 回答日時:
javascriptで、左側の親メニューに画像を描画し、
右側のリストはCSSで表示・非表示を制御した。
HTMLとCSSは、
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Button Canvas By HTML5</title>
<style type="text/css">
div.main {
-moz-column-count: 2;
-webkit-column-count: 2;
-o-column-count: 2;
-ms-column-count: 2;
text-align:center;margin:10px auto 10px;
}
div.main div.left{
break-after: column;
-moz-break-after: column;
-webkit-break-after: column;
-o-break-after: column;
-msbreak-after: column;
}
div.main div.right ul{
display:none;
}
</style>
<!--[if lt IE 9]><script type="text/javascript" src="/jslib/excanvas.js"></script><![endif]-->
</head>
<body>
<h2 style="text-align:center">Button Canvas By HTML5 or IE(excanvas.js)</h2>
<div class="main">
<div class="left">
<canvas id="menumap" width="200" height="500" style="border:1px solid black"></canvas>
</div>
<div class="right" id="submenu">
<ul><li>1-1</li><li>1-2</li><li>1-3</li></ul>
<ul><li>2-1</li><li>2-2</li><li>2-3</li></ul>
<ul><li>3-1</li><li>3-2</li><li>3-3</li></ul>
<ul><li>4-1</li><li>4-2</li><li>4-3</li></ul>
<ul><li>5-1</li><li>5-2</li><li>5-3</li></ul>
</div>
</div>
<script type="text/javascript" src="CanvasMenu.js"></script>
</body>
</html>
※excanvas.jsは↓
http://code.google.com/p/flot/source/browse/trun …
から拾ってくる。
※CanvasMenu.js は続く..
No.1
- 回答日時:
>親メニューだけgif画像で子メニューはcssで表示
画像(=表示内容)、CSS(=表示指定の技法)なので、並列されても意味がよくわかりません。
「CSSで親メニューに画像を指定」とか「ドロップダウンをCSSで実現」とかならわかりますが…
想像するところ、親メニューだけは画像ボタンなどで、それ以降のメニューはテキストのみという意味でしょうか?
javascriptへのご質問なので、ドロップダウンの機能はjavascriptで実現しているってことでも良いのでしょうか?
それでよいのなら…
テキストベースで機能するメニューで適当なものが見つかれば可能だと想像されます。
1)(画像が共通のものを使用できる場合)
親メニューだけCSSで背景画像を指定しておく。
(個別の場合でも、個々に指定するという方法もあります)
2)(画像が個別の場合)
大抵のメニューが
<li><a>text</a></li>
のような構成となっているので、
<li><a><img src="xxx" alt=""></a></li>
のように、HTMLでイメージを表示しておく。(親メニューのみ)
のような方法でいけるのではないでしょうか。
スクリプトを使わずにCSSだけで全て実現というのだと、方法が変わってくるかも…(すぐに思いつかない)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- gooブログ ブログの記事を書きだしのみに表示したい 1 2022/06/25 19:11
- 筋トレ・加圧トレーニング 高校生女子です。 私は一年ほど前から自宅で腹筋トレーニングをしているんですが、なかなかメニューを安定 2 2022/10/06 14:22
- 消費者問題・詐欺 優良誤認表示違反ですか? 先日、ホットペッパーから全国チェーンの美容院を予約しました。 脱白髪染めコ 1 2022/07/18 09:06
- デスクトップパソコン PCでファイルを右ドラッグして出てくるメニューの編集方法を教えて下さい 2 2023/01/17 13:31
- HTML・CSS CSSでの文字位置の上下センタリング 3 2023/03/08 18:42
- LINE スマホを替えてから、LINEの画像が表示されなくなりました 1 2022/10/04 13:41
- Excel(エクセル) VBAで「クエリと接続」の画面を出せますか? 2 2022/10/24 13:35
- Facebook AndroidのFacebookモバイルブラウザ(Facebookアプリで外部リンクにアクセスするF 2 2023/01/26 18:23
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字と数字が混在する要素のsor...
-
ホームページビルダー15 メニュ...
-
【javascript で動的に a タグ...
-
どの<li><a> が押されたか判別...
-
jqueryのsortableで一部ソート...
-
クリックした<a>タグのみにClas...
-
javascriptでEnterキーをtabキ...
-
DOM の 要素の数え方について
-
オンマウスで画像ロールオーバ...
-
戻ってきた時ツリーメニューが...
-
<ul>から</ul>の間をjavascriptで
-
jQueryで、リンクURLの一致を確...
-
JQueryで、liタグの背景に色を...
-
C# ブラウザの自動クリック
-
JQueryタブのアクティブ アン...
-
MAX関数を使ってからLEFT JOIN...
-
htmlの記述で link rel=styles...
-
画像の上に画像リンクを貼る方法
-
javascriptテキストBOX色を元に...
-
読み込んだQRコードをフォーム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jqueryのsortableで一部ソート...
-
javascriptでEnterキーをtabキ...
-
クリックした<a>タグのみにClas...
-
チェックボックスに入っている...
-
【javascript で動的に a タグ...
-
jquery ドロップダウンメニュー...
-
「jQuery」アコーディオンメニ...
-
jQueryで、リンクURLの一致を確...
-
jQueryのeqで最後からn番目以降...
-
ネストされたチェックボックス...
-
javascriptで、クリックしたら...
-
onmouseoverの表示切り替えが上...
-
文字と数字が混在する要素のsor...
-
jQueryでネスト構造の<li>がク...
-
タブメニューを上下に設置
-
<li></li>の数を制限
-
jQuery多層式アコーディオンメ...
-
どの<li><a> が押されたか判別...
-
CSSとJavaScriptを使ってドロッ...
-
複数の画像をランダム(シャッ...
おすすめ情報