ついに夏本番!さぁ、家族でキャンプに行くぞ! >>

mouseoutで閉じるようにしたいのですが、可能でしょうか。

<SCRIPT language="JavaScript">
<!--
flag = false;
function pullDown() {
if(flag) smenu.style.visibility = "hidden";
else smenu.style.visibility = "visible";
flag = !flag;
}
//-->
</SCRIPT>

A 回答 (2件)

<body>



<div id="hoge">あああああああああああああああああああ</div>

<script type="text/javascript">

var hoge = document.getElementById('hoge');

flag = false;

function pullDown()
{
console.debug( 1 );

if( flag )
{
smenu.style.visibility = "hidden";
}
else
{
smenu.style.visibility = "visible";
}

flag = !flag;
}

hoge.addEventListener( 'mouseout', pullDown, false );

</script>
</body>
----------------------------------------
「閉じる」という部分の処理内容の説明がないので、
わかりませんが、
mouseoutのイベントを書いてみました。
ご参考程度にどうぞ。(あ、addEventListenerに対応してないie系だと動きません。)
    • good
    • 0

mouseOutイベント検知でできるんじゃないかな


http://www.tohoho-web.com/js/event.htm#fromElement
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QSelectボックスの一覧表示方法

Selectボックスの一覧表示方法

いつもお世話になりますm(__)m

<input type='text' name='hoge1'>
<select name='hoge2'>
<option value='1'>Aあああ</option>
<option value='2'>Bいいい</option>
<option value='3'>Cううう</option>
</select>

上記のフォームがあった場合、hoge1を入力して、TABキーでhoge2のSelectボックスにフォーカスが移動した時、hoge2の一覧を表示させたいのですが、可能でしょうか?
hoge2にフォーカスがある時に、キーボードのALT+↓を押した時と同じ動作を自動でしたいと思っています。
※Accessでいうところの、xx.Dropdownと同じです

いろいろ調べたところ、「onfocus="this.size=5"」でSelectボックス自体のサイズを変更して表示する方法は見つかりました。
しかし、上記のようにSelectボックス自体のサイズを変更せず、まさにALT+↓を押した状態(一覧が表示される状態)にしたいと考えています。

javascriptのonfocusで出来そうな気がするのですが、お詳しい方、是非ともお力添え下さい。
宜しくお願い致します。

Selectボックスの一覧表示方法

いつもお世話になりますm(__)m

<input type='text' name='hoge1'>
<select name='hoge2'>
<option value='1'>Aあああ</option>
<option value='2'>Bいいい</option>
<option value='3'>Cううう</option>
</select>

上記のフォームがあった場合、hoge1を入力して、TABキーでhoge2のSelectボックスにフォーカスが移動した時、hoge2の一覧を表示させたいのですが、可能でしょうか?
hoge2にフォーカスがある時に、キーボードのALT+↓を押した時と同じ動作を自動でしたいと思っていま...続きを読む

Aベストアンサー

JavaScriptとActiveXコントロールの連携などで実装可能と思いますが

擬似的なリスト表示で構わないのであれば
DHTMLとCSSを使って擬似的にフォーカス取得時に
ドロップダウンリストを表示する方法はどうでしょうか。

<body onLoad="XXXX">
<input type='text' name='hoge1'>
<select name='hoge2'>
<option value='1'>Aあああ</option>
<option value='2'>Bいいい</option>
<option value='3'>Cううう</option>
</select>
<DIV id="myList"><DIV>
</body>

◆ページonLoad時 (DIVタグ非表示)
document.getElementById("myList").style.visibility = "hidden";
◆Selectボックスのonfocus時 (DIVタグ表示)
var obj document.getElementById("myList");
obj.style.color = '#000000'; //文字色黒
obj.style.fontSize ='12';
obj.style.backgroundColor ='#ffffff';
obj.style.borderTopColor ='#000000';
obj.style.borderBottomColor ='#000000';
obj.style.borderLeftColor ='#000000';
obj.style.borderRightColor ='#000000';
obj.style.left = 10;
obj.style.top = 10;
obj.style.width = '498px';
obj.style.height = '23px';
  //リスト部編集
obj.innerHTML = "Aあああ<BR>Bいいい<BR>Cううう";

obj.style.visibility = "visible";
◆Selectボックスのその他イベント時 (DIVタグ非表示)
document.getElementById("myList").style.visibility = "hidden";

JavaScriptとActiveXコントロールの連携などで実装可能と思いますが

擬似的なリスト表示で構わないのであれば
DHTMLとCSSを使って擬似的にフォーカス取得時に
ドロップダウンリストを表示する方法はどうでしょうか。

<body onLoad="XXXX">
<input type='text' name='hoge1'>
<select name='hoge2'>
<option value='1'>Aあああ</option>
<option value='2'>Bいいい</option>
<option value='3'>Cううう</option>
</select>
<DIV id="myList"><DIV>
</body>

◆ページonLoad時 (DIVタグ非表示)
docum...続きを読む

Qjquery ドロップダウンメニューの挙動不審を治す方法

http://makasete-web.net/dropdown-menu

こちらのサイトを元にドロップダウンメニューを作ってみたのですが、
すぐに引っ込んでしまったり、うまく選べません。
jqueryは借りてくるだけなので、内容はわかってないです;
大元のドロップダウンメニューは安定しているようですが、
どこを治せば安定してボタンを選べるようになるでしょうか(´・ω・`)?

ちょっと、長くなっちゃうのですが、こんな感じのメニューで
上段の中2つがドロップダウンします。
よろしくお願い致しますm(==)m


<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>tesuto</title>
<style type="text/css">
a:link {
text-decoration: none;
}
a:hover {
text-decoration: none;
}
* {
margin: 0px;
padding: 0px;
}
body {
line-height: 180%;
}
header {
text-align: center;
}

nav {
width: 930px;
margin-top: 20px;
}
ul{
list-style-type: none;
padding: 0;
color: #fff;
margin: 0;
}
ul#menu li{
display: block;
padding: 0px;
float: left;
position: relative;
height: 27px;
width: 150px;
margin-top: 0px;
margin-right: 5px;
margin-bottom: 0px;
margin-left: 0px;
color: #FFF;
text-align: center;
background-color: #933;
}
ul#menu li a {
display: block;
color: #FFF;
}
ul.child{
display: none;
position: absolute;
padding: 0;
opacity: 0.9;
background-color: #CCC;
font-size: 14px;
width: 150px;
}
ul.child li a{
display: block;
color: #fff;
}
li a:hover {
background-color: #FFBB00;
color: #FFF;
}
ul#menu2 li {
float: left;
width: 155px;
background-color: #666666;
display: block;
margin-right: 5px;
text-align: center;
height: 26px;
color: #FFF;
}
ul#menu2 li a {
color: #FFF;
display: block;
}
#titlle {
margin-top: 100px;
width: 700px;
}
#navmenu {
width: auto;
margin-right: auto;
margin-left: auto;
margin-top: 20px;
}
#cl2 {
height: 100px;
width: 100%;
float: left;
margin-top: 0px;
margin-bottom: 10px;
padding-top: 3px;
background-color: #FFC;
}

</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(function(){
$('#menu li').hover(function(){
$("ul:not(:animated)", this).slideDown();
}, function(){
$("ul.child",this).slideUp();
});
});
</script>
</head>
<body>
<nav>
<ul id="menu">
<li><a href="#">ご案内</a></li>
<li>ご案内
<ul class="child">
<li><a href="#">ご案内</a></li>
<li><a href="#">ご案内</a></li>
<li><a href="#">ご案内</a></li>
<li><a href="#">ご案内</a></li>
<li><a href="#">ご案内</a></li>
<li><a href="#">ご案内</a></li>
<li><a href="#">ご案内</a></li>
<li><a href="#">ご案内</a></li>
<li><a href="#">ご案内</a></li>
<li><a href="#">ご案内</a></li>
<li><a href="#">ご案内</a></li>
</ul>
</li>
<li>ご案内
<ul class="child">
<li><a href="#">ご案内</a></li>
<li><a href="#">ご案内</a></li>
<li><a href="#">ご案内</a></li>
<li><a href="#">ご案内</a></li>
</ul>
</li>
<li class="menu"><a href="#">ご案内</a></li>
</ul>
</nav>
<div id="titlle">
<div id="cl2"></div>
<div id="navmenu">
<ul id="menu2">
<li><a href="#a">ご挨拶</a></li>
<li><a href="#i">ご挨拶</a></li>
<li><a href="#u">ご挨拶</a></li>
<li><a href="#e">ご挨拶</a></li>
</ul>
</div>
</div>
<div class="clear"></div>
</body>
</html>

http://makasete-web.net/dropdown-menu

こちらのサイトを元にドロップダウンメニューを作ってみたのですが、
すぐに引っ込んでしまったり、うまく選べません。
jqueryは借りてくるだけなので、内容はわかってないです;
大元のドロップダウンメニューは安定しているようですが、
どこを治せば安定してボタンを選べるようになるでしょうか(´・ω・`)?

ちょっと、長くなっちゃうのですが、こんな感じのメニューで
上段の中2つがドロップダウンします。
よろしくお願い致しますm(==)m


<!doc...続きを読む

Aベストアンサー

スクリプトそのものは単純で、指定のLI要素に対してマウスエンターでスライドダウン、マウスリーブでスライドアップという内容になっています。


>すぐに引っ込んでしまったり、うまく選べません。

ご提示のソースを表示してみると、親メニューと子メニューの間に隙間ができていますので、そこをマウスが通るとマウスリーブとなって、メニューが閉じるという事象が発生します。
マウスを素早く動かすと、うまくいけば子要素のLIへのマウスエンターが間に合って、表示されたままとなります。
ご質問の「安定しない」とはこれではないかと推測しました。

スクリプトを修正して対応することも不可能ではないでしょうが、レイアウトの方法を修正する方が遥かに簡単そうです。
(スクリプトの修正で対応するにしても、レイアウトの方法を変えた方がやりやすそうに思います)


要は、隙間部分をなくすか、隙間を設けるにしてもその部分をLI要素の一部として評価されるようなレイアウトになさればよろしいのではないでしょうか。
一番簡単なのは、
 ul.child{ top:27px; }
みたいに、位置を明示的に指定することで隙間をなくしてしまえば、とりあえずはご期待の動作になるのではないかと推測します。

スクリプトそのものは単純で、指定のLI要素に対してマウスエンターでスライドダウン、マウスリーブでスライドアップという内容になっています。


>すぐに引っ込んでしまったり、うまく選べません。

ご提示のソースを表示してみると、親メニューと子メニューの間に隙間ができていますので、そこをマウスが通るとマウスリーブとなって、メニューが閉じるという事象が発生します。
マウスを素早く動かすと、うまくいけば子要素のLIへのマウスエンターが間に合って、表示されたままとなります。
ご質問の「...続きを読む

QHTMLフォームのSELECTの幅を一定にするためには?

HTMLフォームのSELECTの幅を一定にするためにはどのようにすれば
いいのでしょうか?

CSS等で設定できるとありがたいのですが、やり方がわかりません。

Aベストアンサー

<select style="width: 200px">

Qセレクトメニューを選択不可にしつつvalueの値を生かす方法

いつもこのサイトを利用させていただいています。
セレクトメニューの選択不可はdisabledを使えばできることがわかったのですが、それだとvalueの値が保持されませんよね。
選択不可なんだけど、value=""の値を持たせたいのですが、どのようにすればよいでしょうか?
ご教授よろしくお願いします。

Aベストアンサー

disabledされるであろう項目名と同じ項目名について、
HIDDENで定義します。名前は、_h を付けるとか。
初期値では、disabledで無効化して置き、

if (fOBJ["data_kit"][1].checked) {
fOBJ["pc_os"].disabled = false;
fOBJ["pc_os_h"].disabled = true;
}
else {
fOBJ["pc_os"].disabled = true;
fOBJ["pc_os_h"].disabled = false;
}

なんてコードで有効にしてしまう。
なんてアイディアではどうでしょうか?

もちろん。受け側でも、_h 付きに付いてもチェックして頂く必要があるのですけど。

# 試してないので分かりませんが、_h なしでも動く様な気もすこし。。。

QonClickに複数の関数を挿入する方法

初心者なのですがアニメーションの関数anime1、anime2、anime3を作成し、onClickに下記のように設定しました。
クリックするとアニメーション2つの設定ではは動くのですが、3つ目を設定すると動かなくなります。
通常はこのような設定はしないものなのでしょうか?
教えてください。
よろしくお願いします。
<INPUT type="button" value="START" onClick="anime1(), anime2()">・・・OKです。
<INPUT type="button" value="START" onClick="anime1(), anime2(),anime3()">・・・動きません。

Aベストアンサー

セミコロンでつなぐのが常道ですが、3つ以上なら
別途function化したほうが、可読性が高くなると
思います。

Qプルダウンリストの背景色の指定

お世話になります。
現在作成しているwebページがあり、下記のようにプルダウンリストの背景色を設定しております。
<select>
<option style="background-color: #FF0000;">サンプル1</option>
<option style="background-color: #00FF00;">サンプル2</option>
<option style="background-color: #0000FF;">サンプル3</option>
<option style="background-color: #FFFFFF;">サンプル4</option>
</select>
このページにおきまして、サンプル3を選択したときに、プルダウンリストに「サンプル3」と表示され、背景色が#0000FFになるようにしたいのですが、
上記のままだと、IEでは背景色も変化しますが、firefoxですとプルダウンリスト内に「サンプル3」と表示されても背景色は白のままです。

IEとおなじ動きになるようにするには、どうしたらよいでしょうか。
ちなみに、

<select style="background-color: #FF0000">

にすると、IE、firefoxともにプルダウンリストの背景色が変更できたので、javascriptでoptionのvalueをとり、それをselectのstyleに設定できれば。。。
と考えたのですが、javascriptはほぼ無知なので、上記の方法でも解決できずでした。

簡単に解決できる方法などございますでしょうか。
もしくは、javascriptで解決できますでしょうか。

どうぞ宜しくお願いいたします。

お世話になります。
現在作成しているwebページがあり、下記のようにプルダウンリストの背景色を設定しております。
<select>
<option style="background-color: #FF0000;">サンプル1</option>
<option style="background-color: #00FF00;">サンプル2</option>
<option style="background-color: #0000FF;">サンプル3</option>
<option style="background-color: #FFFFFF;">サンプル4</option>
</select>
このページにおきまして、サンプル3を選択したときに、プルダウンリストに「サンプル3」と表示され...続きを読む

Aベストアンサー

「スタイルシートのクラス名」

<html>
<head>
<title>TAG index Webサイト</title>
<script type="text/javascript">
<!--
function chBackGround(e) {
e.className=e.options[e.selectedIndex].className;
document.getElementById('submit').focus();
}

window.onload = function() {
document.getElementById('key').className='color01';
}
// -->
</script>
<style type="text/css">
<!--
.color01 {
background-color: #FF0000;
}

.color02 {
background-color: #00FF00;
}

.color03 {
background-color: #0000FF;
}

.color04 {
background-color: #FFFFFF;
}
-->
</style>
</head>
<body>
<form name="f1" action="./DB.cgi" method="POST">
<div>
<select id="key" name="key" onchange="chBackGround(this)">
<option class="color01">
サンプル1
</option>
<option class="color02">
サンプル2
</option>
<option class="color03">
サンプル3
</option>
<option class="color04">
サンプル4
</option>
</select>
</div>
<input id="submit" type="submit" value="表示">
<input type="hidden" name="mode" value="display">
</form>
</body>
</html>

「スタイルシートのクラス名」

<html>
<head>
<title>TAG index Webサイト</title>
<script type="text/javascript">
<!--
function chBackGround(e) {
e.className=e.options[e.selectedIndex].className;
document.getElementById('submit').focus();
}

window.onload = function() {
document.getElementById('key').className='color01';
}
// -->
</script>
<style type="text/css">
<!--
.color01 {
background-color: #FF0000;
}

.color02 {
background...続きを読む

Q