jQueryを使用してHTMLページのどこにでもダブルクリックしてメッセージを残すことができるツールをまとめています。それは、メッセージの位置づけにかかわる不安を抱えています。マウスクリックの位置での位置を決定する
コード私は、現時点ではテストしてい:
$('body').bind('dblclick', function(e) {
var message = $('<div class="message">Form here</div>').css({
'left' : e.pageX,
'top' : e.pageY
});
$(this).append(message);
});
これは、マウスクリックの位置に新しい「メッセージ」を作成します。これはある程度は機能しますが、ブラウザウィンドウのサイズが変更されるとすぐに、 'メッセージ'が位置をずらして移動します。私が最終的にメッセージを保存して(そしてそれらを取得する)ことを望んでいるので、すべてのブラウザのすべてのユーザの異なる場所にロードするのは理想的ではありません。そのページがメディアクエリを使用していても、メッセージをページレイアウトに添付します。
私が問題を理解したことは、ユーザーがクリックした最も近い要素を基準にメッセージを配置する必要があることです。質問は。どうすればいい?
ヒントやヒントがあれば幸いです。
更新04/07/11
私は以下の持っていた答えのほとんどは、私が後だ本当にありません。私はexample of my page to JSfiddleをアップロードして私の設定を表示しています。ここで問題となるのは、メッセージが相対位置に添付されるため、ブラウザウィンドウのサイズが変更されるとメッセージがコンテンツと共に移動することです。
たとえば、ページの第2段落にメッセージを添付すると、ブラウザー/デバイスの幅にかかわらず、その段落にスティックするメッセージを取得する方法を教えてください。私が知る限り、メッセージを相対的に配置するために使用できる最も近いブロックレベルの要素(またはIDまたはクラスを持つ要素)を確立する必要があります。
あなたのご意見をお寄せいただきありがとうございます&ご質問ありがとうございます。
私の答えを無視して、私のディクレキシックなお尻は質問を正しく読まなかった。 HTMLページの一番上の要素に十字要素を挿入します。ブラウザからXとYを計算するのではなく、この最も上の要素からXとYを計算するのではなく、これはボックスがサイズ変更の上を移動することを意味するはずです。 –