Как насчет сохранения не только 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/