2012-06-29 3 views
1

페이지 방문수를 계산하고 인증 목표에 도달하기 위해 남은 방문수를 계산하는 기능이 있습니다. 카운트 다운과 같습니다. "숨겨진"그림이 있으며 새 방문이있을 때마다 그림의 일부가 표시됩니다.편안함 카운터

나는 방문수를 계산하는 간단한 JavaScript 코드를 가지고 있으며 일부 CSS는 그림을 백분율에 따라 "공개"합니다.

하지만 이제는이 "발표"를 느리게 만들어야합니다. 즉, 방문이 목표에 더 가까워짐에 따라 남아있는 그림의 비율이 더 낮아짐을 나타내야합니다.

remaining_percentage_to_goal = (current_visits*100)/goal 

div_height = (remaining_percentage_to_goal*image_height)/100 

내가 좋아하는 뭔가를 시도 할 수 :

오른쪽 지금은 내가 내 머리에서 얻을 수있는 모든 것입니다이 이미지 높이의 100 %에 도달하지 않습니다 물론

slow_down_rate = 0.25 
div_height = div_height-(remaining_percentage_to_goal*slow_down_rate) 

을 너무 나에게 IF 문이나 특정 백분율에 도달했을 때 slow_down_rate를 제거하는 무언가로 하드 코딩 된 고정 변수를 수행 할 수는 있지만, 그것이 정확히 우리가 찾고있는 효과가 아닌 것 같습니다. 그래서 더 좋고 우아한 접근법이 있는지 궁금합니다.

감사합니다.

답변

1

대수적 접근과 같은 것이 좋습니다. 이 대답을 위해 귀하의 목표는 1500 회의 방문이라고 가정 해 보겠습니다 (단,이 수치는 물론 모든 수치가 될 수 있음). 제로 방문의 경우 0 %로 표시하고 1500 회의 방문의 경우 100 % 표시를 원하므로 그래프의 두 점인 (0,0)과 (1500,1)을 알 수 있습니다. 자연 로그는 이러한 매개 변수를 맞게하려면, 당신은 번역하고 그것을 확장 할 수있다, 그래서 당신은이 :

f(x) = alpha*ln(x+beta) 

우리는 LN (1) = 0, 그래서 베타 = 1 쉽다는 것을 알고있다. 우리는 또한 우리의 두 번째 점에 연결하여 아주 쉽게 알파를 찾을 수 있습니다 : 우리는 그래프 경우 이제

1500 = alpha*ln(1500+1) 

alpha = 1500/ln(1500+1) 

, 우리가 얻을 :

우리가 원하는 기능과 같은 enter image description here

... 그것을 자연스럽게 목표에 다가 가면 느려지지만 여전히 도달합니다.

자바 스크립트로이 번역

, 당신은 할 것 :

var goal = 1500; 
var alpha = goal/Math.log(goal+1); 
var percentVisible = alpha * Math.log(visits+1); 

을 나는 희망이 도움이!

+0

있습니다. 고맙습니다. –