私が開発している管理パネルのいくつかのボタンの簡単なツールチップを作成しました。ユーザーがホバーしたときにツールチップをボタンのすぐ上に配置するために、かなり標準的な JQuery コードを使用しています。ただし、スクロールバーが存在する場合と存在しない場合の配置の問題があるようです。
スクロールバーがあると、ツールチップが正しい場所に表示されます...
スクロールバーを表示するのに十分なコンテンツがない場合、スクロールバーの幅だけツールトップがずれて表示されます...
offset().left を使用しているため、奇妙に思えます。これは、ページの幅の影響を受けるべきではありません。これが私が使用しているコードです...
var ttl;
var tt;
$('.icon').mouseover(function (e) {
ttl = $(this).attr('title');
$(this).attr('title', '');
$('body').append('' +
'<div id="tt" class="tt">' +
' <div class="tttxt">' +
' ' + ttl +
' </div>' +
' <div class="ttnib"> </div>' +
'</div>');
tt = $('#tt');
var y = $(this).offset().top - tt.outerHeight();
var x = $(this).offset().left - (tt.outerWidth() - $(this).outerWidth()) / 2;
tt.css('left', x + 'px').css('top', y + 'px');
});
$('.icon').mouseout(function () {
$(this).attr('title', ttl);
tt.remove();
});
どんな助けでも大歓迎です。