No.2ベストアンサー
- 回答日時:
ポップアップを表示する事が補助ではなく目的ならばテンポの遅れは気になりますね。
(titleのポップアップが微妙に遅れるのはブラウザ側の気遣いだと思います。)これはブラウザまかせの事なので仕方ない(Javascriptでポップアップするしかない)ことかと。
以下、少しでも簡潔になるようにしてみました。
<html>
<head>
<title></title>
<style type="text/css">
span { /* テキストの修飾 */
font-weight:bold; /* 文字の太さ */
font-size:150%; /* 文字の大きさ */
}
#tips { /* ポップアップの修飾 */
position:absolute;
display:none;
font-weight:bold; /* 文字の太さ */
font-size:150%; /* 文字の大きさ */
border:1px solid #00FF40;/* Tip表示するボーダーの太さと色:緑 */
padding:1px; /* Tip表示する枠の詰め込み具合 */
background-color:#FF0000; /* Tip表示する文字背景:赤 */
}
span.textHover { /* マウスオーバーした時のテキストの修飾 */
color:#ff1493;
text-decoration:underline;
}
</style>
<script type="text/javascript">
function showTips(O) {
O.className='textHover';
Tips = document.getElementById('tips');
Tips.style.display='block';
Tips.style.top = (O.offsetTop+30)+'px';// '30' この数値で位置を調整(縦)
Tips.style.left = (O.offsetLeft+16)+'px';// '16' この数値で位置を調整(横)
Tips.appendChild(document.createTextNode(O.title));
O.title = '';
}
function hideTips(O) {
O.className='';
Tips = document.getElementById('tips');
Tips.style.display='';
O.title = Tips.firstChild.nodeValue;
Tips.removeChild(Tips.firstChild);
}
window.onload = function() {
var allSpan = document.getElementsByTagName('span');
for(var i=0;i<allSpan.length;i++){
var O = allSpan[i];
if(O.title != '') {
O.onmouseover = function(){showTips(this)};
O.onmouseout = function(){hideTips(this)};
}
}
Tips = document.createElement('div');
Tips.id="tips";
document.body.appendChild(Tips,document.body.firstChild);
}
</script>
</head>
<body>
<p>
<span title="彼は">He</span>
<span title="する">plays</span>
<span title="テニスを">tennis</span>
<span title="毎日。">everyday.</span>
</p>
</body>
</html>
steel_grayさんの献身的な回答に本当に感謝申し上げます。
まさに私のやりたかったことが、記述されていました。
簡潔に記述する方法を教えて下さり、今とても感激しています。
一旦これで締め切りたいと思います。
No.1
- 回答日時:
質問の答えとは若干ずれますが。
> マウス通過時に、文字がピンク色に変わり、その文字にアンダーラインが引かれ
CSSでhoverの設定をするだけです。
ただし、最近のブラウザの中ではIEだけがhoverをリンクにしか設定できないのでJavascriptを使う必要があります。
> その文字の下にポップアップ表示で解説を入れたいのです。
Javascriptでやる方法もありますが多くのブラウザではtitle属性を付けておけばブラウザがポップアップしてくれます。表示位置などブラウザまかせになってしまいますが、元々機能としてあるのに似たようなものをJavascriptで作るのも無駄な気がします。
以上を踏まえて下記は「自分がやるなら」のサンプル。参考までに。
今の状態を希望通りに改造したいのであれば、まずは現状がどのようななっているか、HTMLやjavascriptを補足で書いておけば回答しやすくなると思います。
<html>
<head>
<title></title>
<style type="text/css">
.textNormal {
color:#009;
}
.textNormal:hover {
color:pink;
text-decoration:underline;
}
.textHover {
color:pink;
text-decoration:underline;
}
</style>
<!--[if IE]>
<script type="text/javascript">
window.onload = function() {
var allSpan = document.getElementsByTagName('span');
for(var i=0;i<allSpan.length;i++){
var O = allSpan[i];
if(O.className.match('textNormal')) {
O.onmouseover = function(){this.className = this.className.replace('textNormal','textHover')};
O.onmouseout = function(){this.className = this.className.replace('textHover','textNormal')};
}
}
}
</script>
<![endif]-->
</head>
<body>
<p>XXX<span title="He plays tennis." class="textNormal">彼はテニスをします。</span>XXX</p>
<p>XXX<span title="she also plays tennis." class="textNormal">彼女もテニスをします。</span>XXX</p>
</body>
</html>
すばやい回答ありがとうございます。
とても参考になりました。
ただ、title属性ではワンテンポ遅れて表示されるのが気になります。
何か参考意見があれば、お教えいただきたい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/15 08:30
- WordPress(ワードプレス) ワードプレスで、左寄せ画像と文字を横並びにせず、画像の下に文字を表示される方法を教えてください 1 2022/04/24 11:06
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
- Excel(エクセル) エクセルの数式で教えてください。 3 2022/10/25 10:52
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/07/08 13:46
- その他(パソコン・スマホ・電化製品) ワードでテキストボックス内の文字を連動させない方法 2 2023/02/09 16:56
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/08 09:05
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/04/21 08:59
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 16:55
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/02/18 11:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iframeの中から親ページをスム...
-
function の return 値を表示し...
-
JavaScript でキーを送る
-
JavaScriptでのEnterキーとAlt+...
-
マウスオーバーで文字にアンダ...
-
キーを押している間の時間を計...
-
getElementsByNameで要素が取得...
-
idHOGEで取得したinnerText(数...
-
<a href="#" …>の意味を教えて...
-
cssにjavascriptを入れる?呼び...
-
別ファイルのfunctionの読み込み方
-
テキストをクリックすると答え...
-
bodyにidをつける理由は何ですか?
-
リンクに飛ばない・・・
-
javascriptファイルは1つに統...
-
<iframe>~</iframe>内のwindow...
-
javascriptでbgmを自動再生する...
-
onbeforeunload時のwindow.open...
-
外部からのjs呼び出しについて。
-
「jQuery」アニメーションをル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
getElementsByNameで要素が取得...
-
SCRIPT5007: 未定義または NULL...
-
初心者javascript ウィンドウサ...
-
function の return 値を表示し...
-
JavaScriptでiframeの内容を「...
-
JavaScript でキーを送る
-
フォーカス移動抑止について
-
iframeの中から親ページをスム...
-
html javascript 作った配列を...
-
ボタンのID名を取得するには?
-
キーを押している間の時間を計...
-
自動ジャンプでフォームデータ...
-
bodyタグのfocus
-
リンク移動先のURLを取得
-
チェックボックスの選択パター...
-
JavaScriptでの西暦下2桁での表...
-
htaでVBSのソースを書いたらエ...
-
乱数を一定時間毎に表示させた...
-
「オブジェクトを指定してくだ...
-
jQuery ツールチップの中のリンク
おすすめ情報