クリックのx
/座標だけでなく、ビューポートの/も保存してみてはいかがでしょうか。そうすれば、ビューポートに対するクリックの位置を取得し、クリックが実際にコンテンツのどこで発生したかを計算できます。y
width
height
$(document).on('click', function (event) {
var x = event.pageX,
y = event.pageY,
w = $(window).width(),
h = $(window).height();
});
ビューポートの寸法が変更されたときにのみ取得することで、これを最適化できます。
var windowWidth = 0,
windowHeight = 0;
$(window).on('resize', function () {
windowWidth = $(this).width();
windowHeight = $(this).height();
}).trigger('resize');//this .trigger will get the dimensions on page-load
$(document).on('click', function (event) {
var x = event.pageX,
y = event.pageY,
w = windowWidth,
h = windowHeight;
});
アップデート
中央に配置されたページの場合、ビューポートの中心から座標を取得できます。
var windowWidth = 0,
windowHeight = 0;
$(window).on('resize', function () {
windowWidth = $(this).width();
windowHeight = $(this).height();
}).trigger('resize');//this .trigger will get the dimensions on page-load
$(document).on('click', function (event) {
var x = (event.pageX - (windowWidth / 2)),
y = event.pageY;
});
これによりx
、ページの右側にあるものは正の寸法になり、ページx
の左側にあるものは負の寸法になります。
ここにデモがあります:http://jsfiddle.net/aWBFM/