概要: 挿入された数値からカウントアップでき、ユーザーがいない間もカウントし続けることができ、Web サイト内で発生したカウントを視覚的に表示するカウンターが必要です。これをここに残しながら、これを解決しようとします。どんな助けでも大歓迎です。これをJoomla用のモジュールに詰め込み、近いうちに無料でリリースする予定です。
入力は次のとおりです。
- 開始量、 更新する 間隔 (秒単位)、間隔ごとに追加する率
タイマーを構築するための PHP クラス
class Counter {
var $baserate;
var $rate;
var $start;
var $seconds;
var $now;
var $month;
var $day;
var $year;
var $saving;
var $growthrate;
function Counter($rate, $baserate,$seconds,$year,$day,$month)
{
$this->rate = $rate;
$this->base = $baserate;
$this->seconds = $seconds;
$this->year = $year;
$this->day = $day;
$this->month= $month;
$this->carbonsaving();
}
function carbonsaving()
{
$now = time();
$start = mktime(0,0,0,$this->month,$this->day,$this->year);
$growthrate = $this->rate * (60/$this->seconds);
$saving = round(((($now - $start) * $growthrate) + $this->base));
return $saving;
}
}
$count1 = new Counter(0,1, 2,2011,4,8);
$count2 = new Counter(15,1, 1,2011,1,8);
$width = 300;
$height = 350;
?>
Javascript ウェブページの更新間隔を設定し、初期値の関数を呼び出します。 これらは現在同期していないようです
var car1 = <?php print($count1->carbonsaving()); ?>;
var car2 = <?php print($count1->carbonsaving()); ?>;
function incs1()
{
car1 = car1 + <?php print($count1->rate);?> ;
document.getElementById("carb1").innerHTML=car1;
}
function incs2()
{
car2 = car2 + <?php print($count2->rate);?> ;
document.getElementById("carb2").innerHTML=car2;
}
setInterval('incs1()', <?php print($count1->seconds);?> *1000 );
setInterval('incs2()', <?php print($count2->seconds);?> *1000 );
最後に、タイマーセクション。ローディングを取り除き、onpageload イベントを本文に追加して、ページがロードされるとすぐに (間隔を待つのではなく) 数値がロードされるようにしたいと考えています。
<span id="carb1">Loading...</span><br />
<span id="carb2">Loading...</span><br />
<span id="carb3">Loading...</span>
現在のスクリプト: 現在のスクリプトは、ページ上の 3 つのカウンターのそれぞれに対してオブジェクトを作成するクラスによって実行されています。現在、カウンターはいくつかの問題に直面しています。
カウントと間隔が同期していません。つまり、ビジュアル Web サイトでのスクリプトの更新間隔は、スクリプト内のカウントと同期していません。私の論理は、ある時点でオフになっている必要があります。
最初に数字を入力する問題。これを達成するための機能はまだ追加していません。入力番号をスクリプトに入れて、このプログラムの正しい開始時刻を作成する簡単な方法を知っている人はいますか?