I have a jsfiddle here。イメージを含むjQuery UIのツールチップに間違った位置があります
$(document).tooltip({
items : "[title]",
position : {
my: "left+35",
at: "right+10",
collision: "flipfit"
},
content : function() {
var cache = new Date().getTime();
// Uncomment this next line and the tooltip looks correct after the image is retrieved
//cache = "";
return '<img src="https://g.foolcdn.com/editorial/images/225916/getty-apple_large.jpg?' + cache + ' width="600">';
},
open : function(event, ui) {
ui.tooltip.css("min-width", "600px");
}
});
イメージが入ったツールチップを表示しようとしています。ブラウザが最初にイメージを取得している場合、ツールチップの位置が間違っているようです。 「フリップフィット」コリジョンロジックが正しく適用されていないようで、ツールチップが表示可能領域外に正しく配置されていません。
ブラウザは、所望の位置にツールチップが表示されたら、完全に可視画像のキャッシュされたバージョンを使用することができます私のJavaScriptの行のコメントを解除した場合。
jQueryのUIが正しく位置を計算するために取得する方法はありますか?私は多くのことを試みましたが、それを働かせることはできません。
私が持っているポジショニングは有効です。 JQueryの文書によると、「各次元にはピクセル単位またはパーセント単位のオフセットも含めることができます(たとえば、右上+上位10%〜25%)。画像がまだ読み込まれていないので、ポジションが奇妙だとあなたは正しいと思います。私は、ツールヒント位置の計算が行われる前に、何らかの形でイメージをプリロードするという解決策があると思います。または、何とかjqueryのツールチップにサイズについてのヒントを与えて、それが終了するようにします。 –
ページの残りの部分で画像を取り込みます。表示されないように設定します。ページのロードが完了すると、キャッシュされ、簡単にポップアップできます。各項目は独自のものを持つ必要があります。また、そこにあるキャッシュコードも削除してください。 – trevster344
私はそれについて考えましたが、ページ上に100以上の異なる画像があり、サイズがかなり大きいので、あらかじめロードしたくありませんでした。誰かが小さなサムネイル画像の上にぶら下がっている場合にのみ、それらを検索したかったのです。別の解決策を見つけて投稿しました。ありがとう。 –