- Bootstrapでのツールチップの表示
- 表示位置の変更
- 改行したり文字を装飾したりHTML表示を使う
- ツールチップの幅を広げる
- ツールチップ有効化時にオプションを渡す
- ツールチップを無効化、有効化する
Bootstrapでのツールチップの表示
ここではBootstrap 3を使用しています。
まず、Botostraop関連のCSSやJavaScriptを<head>
の中で読み込んで起きます。
1 2 3 4 5 6 7 8 |
|
myscript.jsは色々自分のスクリプトが入ってるものだとして、 その中に
1 2 3 |
|
と、ツールチップを有効化するスクリプトを入れておきます。
これで準備が出来たのでツールチップを表示させるボタンを作ってみます。
一番簡単には、data-toggle
にtooltip
をして
title
に表示したい文字列を入れればOK。
1
|
|
これでTooltipボタンの上にカーソルを持って行くと上側にツールチップが表示されます。
表示位置の変更
表示する位置はdata-placement
で決められて
上下左右それぞれ、top
、bottom
、left
、right
を指定します。(デフォルトはtop
。)
1
|
|
なら右側。
改行したり文字を装飾したりHTML表示を使う
ツールチップの表示をHTMLで装飾する事もできます。
HTMLを使うにはdata-html
をtrue
にします。
1
|
|
こんな感じのを作ると
こんな感じでツールチップの中で色をつけたり文字サイズを変えたり改行したり出来る様になります。
data-html
を指定しないとタグがそのまま表示される様な状態になります。
ツールチップの幅を広げる
ツールチップは上みたいな感じで表示されますが、
表示幅を変更したい場合はtooltip-inner
というクラスのCSSを変更することで出来ます。
1 2 3 |
|
こんな感じで最大表示幅を変えてあげれば
こんな感じで幅広な表示にすることが出来ます。
ただし、このtooltip-inner
はツールチップをつけてる要素の親要素の中に入るので、
上のボタンとかが小さな幅の要素の中にいると幅狭になってしまいます。
(特に一つ要素を何らかの理由でdiv
とかで囲ってるとボタンと同じ幅だけになってしまったりしてしまいます。)
これを回避するためにはdata-container
にbody
など、大きな要素を入れておくと
それの幅を見てtooltip-inner
の幅を決めてくれる様になります。
1
|
|
これならTooltipボタンの親要素が小さくても画面全体をMaxとして使える様になります。
Bootstrap 2の時にはツールチップ部がbody直下に置かれる様に作られてたので 常に幅広な表示だったので、 Bootstrap 3にしたら幅が狭くなった、という場合にはこんな感じで試してみると上手く行くと思います。
ツールチップ有効化時にオプションを渡す
上のdata-html
やdata-container
に関して、
最初に書いたツールチップを有効化するための関数にオプションとして渡して
全ての関連する場所で有効化することも出来ます。
1 2 3 |
|
などとすれば全てのツールチップがbody
を基準に幅を決め、htmlが有効になります。
また、title
というオプションに文章を指定しておくと
デフォルトの表示を決めることも出来ます。
同じツールチップを出す必要がある場合は、各ツールチップに適当なクラスを割り当てておいて、
1 2 3 4 |
|
みたいな感じでcommon-tips
というクラスを持つツールチップについては
タイトルをここで決めてしまう、みたいな事が出来ます。
.common-tips
な要素も、要素自体でtitle
を指定すればそちらが優先されます。
ツールチップを無効化、有効化する
ツールチップを無効化するには
1
|
|
と、destory
という引数を入れてtooltip
を呼びます。
再び有効化するには
1
|
|
とします。
ただ、このshow
は、カーソルが該当要素の上にない場合でも表示するための
オプションで、一旦カーソルを要素の上に持って行ってはずすまで
表示され続けます。
これをJavaScript側で消すには
1
|
|
とhide
を使って呼んであげればOK。
また、関連としてtoggle
:
1
|
|
を使うと呼ぶたびに表示したり隠したりすることが出来ます。