Я задавал этот вопрос раньше, и ответы сказали мне, что я знал, что мне нужно было сделать, но не привели пример, поэтому я еще не нашел решение.
У меня есть начальный div, называемый «контейнер», который является height:100% width:100%
изображением карты Оклахомы. Идея состоит в том, что когда пользователь щелкает определенную часть карты (для этого примера - ручку с панорамированием), div переключается на div, который является изображением с панорамированием. Я определяю, где пользователь щелкает мышью, зная местоположение мыши по пикселям при нажатии.
Проблема в том, что значения пикселей различны для экранов разных размеров. Мне сказали, что для того, чтобы масштабировать мои расчеты в зависимости от того, где пользователь щелкает по размеру экрана, мне нужно:
масштабируйте каждое значение, прежде чем сравнивать его. Умножьте каждый x на свою каноническую ширину, разделите на фактическую ширину и сделайте то же самое с y и высотой.
Меня смущает «умножить каждый х на свою каноническую ширину и разделить на фактическую ширину». Я пошел вперед и попытался все равно масштабировать. Я обнаружил, что первый край ручки находится на 3,1% от левой стороны экрана, а самый дальний - на 35,7% от левой стороны экрана. У меня есть следующий код:
$("#container").click(function(e)
{
var x = event.pageX;
var y = event.pageY;
// Variables for area of pan handle
/* These variables do not seem to work yet */
var xScale1 = 0.031*x;
var xScale2 = 0.357*x;
if(x >= xScale1 && x "less-than"= xScale2)
{
alert("You clicked the panhandle!");
}
}
Это должно появиться предупреждение, когда я щелкаю внутри горизонтальных границ ручки, но ничего не происходит. Я заметил, что я не делю ни одно из моих значений на «фактическую ширину». Может ли кто-нибудь привести пример того, как «умножить каждый х на вашу каноническую ширину и разделить на фактическую ширину»?