現在、多くのツールチップを使用してサイトに取り組んでいます。ツールチップが常にビューポートに完全に表示されるようにしたいと考えています。
ツールチップ用のプラグインがあることは知っていますが、ツールチップは css を介して行われるため、機能しません (すべてを変更することはできません!)。ツールチップを取得したい要素には position:relative が与えられ、その直後に class='tooltip' を持つ要素が続きます - CSS コードは次のとおりです:
.tooltip{
display:none;
color: #262626;
background-color: #FEFEE0;
padding: 5px 12px;
position: absolute;
box-shadow: 0 0 5px #A6A6A6;
margin-top:-8px;
z-index: 1000;
}
*:hover + .tooltip {
display:block ! important;
}
.tooltip:hover{
display:block;
}
私がやりたいことは、ツールチップが表示されるたびに(またはツールチップの前の要素がホバーされるたびに)、関数を実行してオフセットを計算し、それが画面に収まるようにすることです(そうでない場合は移動します) .
私がまだ試していないことを今考えることができる唯一のことは、次のようなものを実行することです:
$("*:hover").each(function(e){
if ($(this).next().hasClass('tooltip')
//run some positioning function
}
わかりました、私はjqueryの専門家ではありません。上記はバグがある可能性があります。まだ試していませんが、アイデアはわかります。しかし、それは理にかなっていますか?パフォーマンスに(悪い意味で)影響しますか?
私はこれに何時間も費やし、空になってしまいました。どんなアイデアでも大歓迎です!