
言語はjavascriptでURLにマウスオーバー
すればクリックしないでリンク先へ飛べるものが作りたい。
要するにクリックをなるべく使用しないサイトの構築をしたいんです、
URLにマウスをのせると(ポップアップやツールチップのようなもの(1))が出てきて、(そこ(1))にマウスを乗せるとサイトへ飛べるようなものが作りたいです。
下記のURLなどを参考につくってみようとしたんですけど、うまく作れなかったので、
できるかたがいらっしゃいましたらよろしくおねがいします。
h ttp://jqueryfordesigners.com/demo/coda-bubble.html
h ttp://www.vegabit.com/Examples/position-align.html
ファイヤーフォックスのアドオンのリンク先のサイトプレビューができる「CoolPreviews」などはわかりやすいと思います。
■←これにマウスをのせる。
すると、■の上のほうに▲が現れる。それにマウスをのせると自動で飛べるってのはできませんか?▲にマウスをのせなかったら二秒後くらいに消える。そういう設定が理想です。
■
マウスをのせる
▲
■
がでてくる
▲にマウスをのせると
リンク先へ自動で飛べる
みたいなのです。
標準のツールチップヒントなどはtitle属性を使うため、属性にさらに属性を組むことができない
ですがoverLibというのがありました。
h ttp://www.bosrup.com/web/overlib/
h ttp://www.javable.jp/notes/webscripts/overlib.html
しかし,
htmlタグは組み込めるようですが、javascriptの関数はできないようです。
何か良いアイデアがありましたら教えてください。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
テキストの■、▲でやって見ました。
サンプルHTML↓の様に HoverMarker.js を積んでおいて、
HoverMarker.init("A"," ■ "," ▲ ",5000);
と呼び出すと、ドキュメント内の全<a>要素の前に■を付けて、
マウスオーバーすると横に▲が出現して5000ミリ秒後に消えます。
▲をマウスオーバーすると、その<a>要素のリンク先にその<a>要素の
ターゲットで開きます。
※IE8以上だと、"A"の変わりに<a>要素を選ぶCSSセレクター書式も
使えます。
※ちょっと改造すれば、" ■ "," ▲ "の変わりに、任意に作った
nodeを渡せるように出来そうです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Sample</title>
<script type="text/javascript" src="/HoverMarker.js"></script>
</head>
<body>
<p>
<a href="link1.html" target="_blank">link1</a><br>
<a href="link2.html" target="_blank">link2</a><br>
<a href="link3.html" target="_blank">link3</a><br>
</p>
<script type="text/javascript">
HoverMarker.init("A"," ■ "," ▲ ",5000);
</script>
</body>
</html>
HoverMarker.jsのソースは、
https://gist.github.com/726663
に置きました。
すごい興奮しました。
ありがとうございます。
イメージとしてはかなり理想に近いです。
▲の表示位置の指定やデザイン性など
改良を加えたら面白いものができそうです。
No.3
- 回答日時:
// つづき
show : function(evt, t) {
var s, x, y;
s = this.dlg.style;
if (s.display != "none") clearTimeout(this.timerId);
this.href = t.href;
this.dlg.getElementsByTagName("p")[0].innerHTML = t.getAttribute("href");
s.display = "block";
x = evt.clientX;
x += (x>this.view[this.width]-160)?-170:10;
y = evt.clientY;
y += y<50?10:-50;
s.left = ((window.pageXOffset || this.doc.scrollLeft) + x) + "px";
s.top = ((window.pageYOffset || this.doc.scrollTop) + y) + "px";
this.timerId = setTimeout(this.trans("hide"), 2000);
},
hide : function() {
this.dlg.style.display = "none";
},
init : function() {
this.doc = document.compatMode=="CSS1Compat"?document.documentElement:document.body;
this.view = /*@if(1)this.doc @else @*/ document.defaultView /*@end @*/;
this.width = /*@if(1) "clientWidth"@else @*/ "innerWidth"/*@end @*/;
document./*@if(1) attachEvent('on' + @else @*/addEventListener(/*@end
@*/ 'mouseover', this.trans("checker"), false);
}
}
jumpDialog.init();
//-->
</script>
</body>
</html>
No.2
- 回答日時:
サンプルとして。
仕様が不明なので、いい加減です。
id="jumpDialog"のDIVを表示する対象要素としています。「▲Jump?▲」部分にオンマウスすると遷移します。
IEだとgetAttributeでもフルパスが帰るようで、リンク先の表示がオーバーフローしちゃうけどサンプルなので良しとしてください。
表示はマウスの右上を基本にしていますが、画面から飛び出る場合は調整してます。(スクリプトの1/3くらいはこの調整)
文字制限に引っかかると思うので2分割になりそう。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<style type="text/css">
#jumpDialog {
width:150px;
height:41px;
border:2px ridge #aac;
position:absolute;background-color:#def;
font-size:14px;
overflow:hidden;
display:none;
}
#jumpDialog div {
height:14px;
padding:3px;
background-color:#48c;
text-align:center;
}
#jumpDialog p {
margin:0;
padding:4px;
}
</style>
</head>
<body>
<div style="width:900px; height:600px;">
<a href="Test2/A.html">Ahtml</a>
<p style="height:400px;">space</p>
<div style="text-align:right;">
<a href="Test2/B.html"><span>Bhtml</span></a>
</div>
</div>
<div id="jumpDialog">
<div>▲Jump?▲</div>
<p>srcha nanntarakanntara desutoiukotowokaku</p>
</div>
<script type="text/javascript">
<!--
//@cc_on
var jumpDialog = {
timerId : null,
href : "",
dlg : document.getElementById("jumpDialog"),
trans : function(nam) {
return function() {
jumpDialog[nam].apply(jumpDialog, arguments);
}
},
checker : function(evt) {
var t = evt.target || evt.srcElement;
if (t.nodeName == "DIV" && t.parentNode.id == "jumpDialog") this.jump();
while (t && t.nodeName != "A") t = t.parentNode;
if (t) this.show(evt, t);
},
jump : function() {
location.href = this.href;
},
// つづく
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- マウス・キーボード マウスのないパソコン 9 2022/03/30 10:53
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- Windows 10 (緊急)windowsのタスクバーやアプリ?が反応しない 3 2023/03/28 05:03
- マウス・キーボード Bluetoothのクイックペアリングについて 8 2023/03/25 16:50
- その他(パソコン・周辺機器) Bluetooth 機器を二つ以上つなぐとつないだ機器が使えなくなる 2 2022/08/20 17:43
- マウス・キーボード 無線マウスが反応しない 3 2022/05/08 22:22
- タブレット リモートデスクトップ用のモバイル端末を買いたいと思っています。 出先でマウスとキーボードを繋いで家に 3 2023/03/14 02:27
- マウス・キーボード PC画面に表示されているHPなどを上下にスライドさせたい 7 2023/03/17 11:05
- マウス・キーボード マウスの購入 9 2022/12/05 15:11
- マウス・キーボード マウスって便利な入力器具ですね。マウスに変わって使われる次世代の入力器具はどんな物になるでしょう 6 2022/10/05 14:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
プルダウンとチェックボックス...
-
指定字数以降隠す
-
隣のフレームの中のスタイルを...
-
classの中の<a>タグにidを追加
-
ダブルクォーテーションが消え...
-
getElementByIdの戻り値がnull...
-
jQueryで指定した要素自身のHTML
-
removeAttribute()メソッドで削...
-
一部のjavascriptがfirefoxで効...
-
java折りたたみタグを複数設置...
-
背景色を透明化
-
javascriptでpostした値が取得...
-
【HP作成】クリックすると下...
-
Javascriptで可変のHTMLのID名...
-
checkboxにチェックを入れると...
-
VBAのことについて教えてくださ...
-
指定日時から7日毎にテキストと...
-
javascriptテキストBOX色を元に...
-
jQueryで同じid属性が複数あっ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
IFRAMEの表示/非表示を切り替え...
-
removeEventListenerについて
-
背景色を透明化
-
createElementで作成した要素を...
-
javascriptでpostした値が取得...
-
読み込んだQRコードをフォーム...
-
iframe内のリンクが飛ばないの...
-
jQueryでクリックされた要素のi...
-
ダブルクォーテーションが消え...
-
<div ~ </div> で囲まれたテキ...
-
【HP作成】クリックすると下...
-
<Div>の中の要素の数を調べる
-
jQueryで特定id以外の下にある...
-
VBScript+IEのチェックボック...
-
removeAttribute()メソッドで削...
-
折りたたみ部分にアンカーでリ...
-
onclickを利用した伸縮メニュー...
-
背景色を一定時間ごとにランダ...
おすすめ情報