jQuery UI の Tooltip で、入力欄の真下に吹き出し型ツールチップを表示する方法。
実装例(サンプル)
実装例(サンプル)の動作について
「サンプル入力欄: 」の右横のテキスト入力欄にカーソルを合わせるか、「サンプル入力欄: 」のテキストをクリックするなどしてテキスト入力欄をフォーカスすると、テキスト入力欄の真下に「ツールチップのサンプル」という内容の吹き出し風ツールチップを表示する。
実装例(サンプル)のソースコード
読み込み
パスは、それぞれ、アップロードした場所を指定する。
<link rel="stylesheet" href="jquery-ui.css">
<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script type="text/javascript" src="ui/1.10.2/jquery-ui.js"></script>
<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script type="text/javascript" src="ui/1.10.2/jquery-ui.js"></script>
JavaScript
<script>
jQuery( function() {
jQuery( "#sample" ).tooltip( {
position: {
my: "center top",
at: "center bottom+10",
using: function( position, feedback ) {
jQuery( this ).css( position );
jQuery( "<div>" )
.addClass( "arrow" )
.addClass( feedback.vertical )
.addClass( feedback.horizontal )
.appendTo( this );
}
}
} );
} );
</script>
jQuery( function() {
jQuery( "#sample" ).tooltip( {
position: {
my: "center top",
at: "center bottom+10",
using: function( position, feedback ) {
jQuery( this ).css( position );
jQuery( "<div>" )
.addClass( "arrow" )
.addClass( feedback.vertical )
.addClass( feedback.horizontal )
.appendTo( this );
}
}
} );
} );
</script>
CSS
<style>
<!--
#sample {
padding: 1em;
}
#sample label {
color: #444444;
}
.ui-tooltip,
.arrow:after {
background: black;
border: 2px solid white;
}
.ui-tooltip {
padding: 10px 20px;
color: white;
border-radius: 20px;
font: bold 14px "Helvetica Neue", Sans-Serif;
text-transform: uppercase;
box-shadow: 0 0 7px black;
}
.arrow {
width: 70px;
height: 16px;
overflow: hidden;
position: absolute;
left: 50%;
margin-left: -35px;
bottom: -16px;
}
.arrow.top {
top: -16px;
bottom: auto;
}
.arrow.left {
left: 20%;
}
.arrow:after {
content: "";
position: absolute;
left: 20px;
top: -20px;
width: 25px;
height: 25px;
box-shadow: 6px 5px 9px -9px black;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
tranform: rotate(45deg);
}
.arrow.top:after {
bottom: -20px;
top: auto;
}
-->
</style>
<!--
#sample {
padding: 1em;
}
#sample label {
color: #444444;
}
.ui-tooltip,
.arrow:after {
background: black;
border: 2px solid white;
}
.ui-tooltip {
padding: 10px 20px;
color: white;
border-radius: 20px;
font: bold 14px "Helvetica Neue", Sans-Serif;
text-transform: uppercase;
box-shadow: 0 0 7px black;
}
.arrow {
width: 70px;
height: 16px;
overflow: hidden;
position: absolute;
left: 50%;
margin-left: -35px;
bottom: -16px;
}
.arrow.top {
top: -16px;
bottom: auto;
}
.arrow.left {
left: 20%;
}
.arrow:after {
content: "";
position: absolute;
left: 20px;
top: -20px;
width: 25px;
height: 25px;
box-shadow: 6px 5px 9px -9px black;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
tranform: rotate(45deg);
}
.arrow.top:after {
bottom: -20px;
top: auto;
}
-->
</style>
HTML
<div id="sample">
<label for="sampleTooltip">サンプル入力欄: </label>
<input id="sampleTooltip" title="ツールチップのサンプル" />
</div>
<label for="sampleTooltip">サンプル入力欄: </label>
<input id="sampleTooltip" title="ツールチップのサンプル" />
</div>