スクロールするとメニューも一緒に追いかけてくるような、floating menu について。
tableの一つのセルの中で上下するようなメニューを作成したいのですが、上手くいきません。
検索しても初心者の私にも分かりやすいよなサイトがありませんでした。
理想では下記のサイトのメニューのようにしたいのですが、ソースを見ても全く分かりません。下記のサイトではtableをしようしてないようです。
http://naturalbreeze.cside.com/material.index.html
参考にしたのは下記のサイトです。
http://www.inforz.net/jquery/219.html
実際に私が試みたHPです。↓tableで右と左のセルに分けていますが、これを左のセル内で上下するメニューを作成したいです。
http://kazu1213abi.web.fc2.com/others/float/floa …
上記のHPのようにfloating Menuをtableの中に設定しているわけではないので、当然ながら位置を指定しても見る人の画面の大きさによって左右されてしまいます。
詳しい方はどうか御教授ください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
固定レイアウトみたいなので、サイズの計算はある程度は簡単にできそうですね。
・「position:absolute」で行なうなら
divをtd内に記述する必然性はありません。
最初にtdの大きさを取得しておいて、その範囲の中でtop、leftを制御してあげればよいのではないでしょうか?
リサイズされるとleftの位置が変わるので、そのときのイベントも取得する必要がありそうです。
・「position:relative」で行なうなら
基本的に親要素(td)に対しての相対位置になりますので、leftは固定できます。 (300-180)/2=60pxならセルの中央とか。リサイズしても変わりません。初期状態を明確にしておくために、tdのalignなどを指定しておくほうがよさそう。
topの絶対値はtdのtop+相対位置になるので、scrollから計算するのにちょっと注意が必要。(サンプルのレイアウトなら固定値でもいけそうですが)
さて、ご提示の参考サイトですが…
メニューの移動は↓のライブラリを利用しているようです。
http://youmos.com/project/wrapscroll
テストしていませんが、解説を読む限りでは「メニュー要素」、「メニューの移動範囲要素」を指定すれば、ご質問のような機能を自由に実現できるみたい。
作成するのが面倒なら、こちらを利用するのが簡単でしょう。
エフェクトなどもいろいろ用意されているようです。
回答ありがとうございました。
wrapscrollの存在を知らなかったので勉強になりました。
wrapcscrollで作成してみようと考えています。
No.1
- 回答日時:
tableのセル内で動いているように見えるのであればよいのですよね?
こんな感じでどうでしょう?
実際にセル内にメニューの要素を入れる必要はありません。
Javascriptでtableの位置を取得してメニューをそこに合わせています。
---
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>KAZU JAVA/floating menu</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4. … type="text/javascript"></script>
<script>
var adjustMenuPos = function(){
$('#menu').css({
top: $('#main').offset().top + 10,
left: $('#main').offset().left + 60
});
};
$(function(){ adjustMenuPos(); });
$(window).resize(adjustMenuPos);
</script>
<style type="text/css">
* { margin: 0; padding: 0; }
body { background-color: #000; }
#main { width: 800px; height: 2000px; background-color: #fff; margin: 0 auto; }
#mainRight { width: 500px; }
#menu { position: fixed; top: 0px; left: 0px; width: 180px; background-color: #fff; border: 1px solid #000; text-align: center; }
#menu dt { height: 36px; border-bottom: 1px solid #000; color: #fff; background-image: url('http://kazu1213abi.web.fc2.com/img/menu-center.j … }
#menu ul { list-style-type: none; }
</style>
</head>
<body>
<table id="main" border="1" cellspacing="0">
<tr><td></td><td id="mainRight"></td></tr>
</table>
<dl id="menu">
<dt>MENU</dt>
<dd>
<ul>
<li>MENU1</li>
<li>MENU2</li>
<li>MENU3</li>
</ul>
</dd>
</dl>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 人類学・考古学 古墳の実測図の見方について 3 2023/07/01 17:33
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- Word(ワード) ワード。オブジェクトの一部分にグラデーションを塗るには 2 1 2022/10/04 16:25
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- Excel(エクセル) [スライサー]に関して、 1 2022/05/24 21:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どこに挿入?
-
クリックで指定のテーブルの背...
-
画面表示とともに、テーブルの...
-
【UWSC】HTML内のある部分を抽...
-
3つのselectでURLパラメータを...
-
ボタン無しでフォーム内容送信
-
return trueとreturn falseの用...
-
正規表現で複数マッチ条件で悩...
-
クリックされた罫表セルの行番...
-
テキストエリアの行頭行末に指...
-
iframe内のformをサブミットす...
-
jQueryで特定のチェックボック...
-
onchangeイベントを強制的に発...
-
引数に数値、文字列の混在
-
jQueryで設定したイベントハン...
-
複数のプルダウンを1つにまとめ...
-
一つのチェックボックスのON/OF...
-
送信フォームで送信ボタンをお...
-
ボタン押下すると一行テキスト...
-
JavaScriptde途中で、「exit」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
selectのonChangeが動作しません
-
画面表示とともに、テーブルの...
-
テーブルの行数を可変長にした...
-
javascriptで画像をテーブルに...
-
テキストエリアに入力した改行...
-
プルダウンメニューを表の中に...
-
【jQuery】tableループ内のIDの...
-
javascriptで<table>背景色の取得
-
csvファイルのデータを変数とし...
-
javascriptでクリックするごと...
-
Javascriptでテーブルタグの座...
-
table内で上下するfloating men...
-
tbody要素のinnerHTMLが書き換...
-
テーブルのセルのクリック時、...
-
外部CSVをサイトに読み込み表示...
-
Table内TDの子要素を移動させた...
-
指定のテキストをクリックする...
-
javascript でテーブル操作
-
クリックごとに文字色が交互に...
おすすめ情報