Вопрос

Привет, ребята, у меня есть формула процентного соотношения Cals_in и Cals_out (из 200%).

я создал шкалу, чтобы показать разницу значений в процентах.Проблема в том, что я хочу преобразовать разницу в высоте пикселей, чтобы переместить масштаб вверх или вниз.

function setScalesToValue(fValue) {

   document.getElementById("cals_in").style.bottom = (183 + fValue) + "px";
   document.getElementById("cals_out").style.bottom = (183 -  fValue) + "px";

}

Начальная позиция шкалы — 183, затем разница добавляется или вычитается, чтобы показать проекции на шкале.Это работает не слишком хорошо, и я прошу чьей-либо помощи, чтобы использовать процент возврата для изменения шкалы.

Примечание:fValue не может быть больше 20 пикселей.

Любое руководство будет оценено по достоинству.

Это было полезно?

Решение

Предупреждение:Я очень устал, это очень непроверено, и я редко связываюсь с javascript - так что надеюсь, что это имеет смысл.

Цель состоит в том, чтобы определить максимальную разницу, которая будет полностью расширять масштаб.Когда вы получаете реальную разницу, вы видите, какой процент от максимума у ​​вас есть.Тогда вы просто получите этот процент в 20 пикселей.Конечно, все, что превышает 100%, вы просто корректируете до 100%, чтобы не превышать 20 пикселей.(Надеюсь, этот код работает)

var difference;
var max_expected_difference;
var diff_percent;
var fValue;

diff_percent = difference/max_expected_difference;
diff_percent = Math.round(diff_percent*100)/100;

if (diff_percent>1) diff_percent = 1;
if (diff_percent

Если это неясно, в любом случае вы добавите 183 пикселя.fValue должно быть отрицательным, если разница отрицательна.

Редактировать:Похоже, я неправильно понял, как вы это реализуете, но основная идея у вас все равно будет работать нормально.Честно говоря, если ваше максимальное изменение калорий составляет 200%, то кратчайший путь к вашему fValue — это разделить разницу в % на 10 и округлить десятичную дробь.Таким образом, 148% будет 15 пикселей, 81% будет 8 пикселей и т. д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top