微信開発のウィジェットでカウントダウンを実現
1226 ワード
settimeout(func,time)は、timeミリ秒ごとにfunc関数を実行し、タイマー/クロックとしてよく使用することができる.
以下は微信ウィジェットでの使用構想であり,キー部分コードのみを切り取った.
考え方:
settimeout()は、ミリ秒数を指定した後に指定関数を実行し、settimeout()を再帰的に呼び出すことで各種タイマ機能を実現します.
毎秒1回のクロックをリフレッシュしたい場合は、時間変換関数を実行するたびにsetDataがインタフェースを更新するだけです.
cleartimeout(「タイマーの名前」)を使用して、指定したタイマーを停止します.
次はJavascriptの時間に関する変換関数です.
また、タイミング繰り返し呼び出し関数の機能をする場合は、setInterval()の代わりにsetTimeOut()を使います.setInterval()には誤差があるからです.詳細はこちら
参考資料:
https://www.w3cschool.cn/xiaochengxu/nsgq1u7h.html
以下は微信ウィジェットでの使用構想であり,キー部分コードのみを切り取った.
var timer; //
Page({
// ...
//
startBtn: function () {
console.log(" ");
Countdown();
},
//
pauseBtn: function () {
console.log(" ");
clearTimeout(timer);
},
});
//
function Countdown() {
timer = setTimeout(function () {
console.log("----Countdown----");
Countdown();
}, 1000);
};
考え方:
settimeout()は、ミリ秒数を指定した後に指定関数を実行し、settimeout()を再帰的に呼び出すことで各種タイマ機能を実現します.
毎秒1回のクロックをリフレッシュしたい場合は、時間変換関数を実行するたびにsetDataがインタフェースを更新するだけです.
cleartimeout(「タイマーの名前」)を使用して、指定したタイマーを停止します.
次はJavascriptの時間に関する変換関数です.
// --> : :
function formatTime(seconds) {
return [
parseInt(seconds / 60 / 60), //
parseInt(seconds / 60 % 60), //
parseInt(seconds % 60) //
]
.join(":")
.replace(/\b(\d)\b/g, "0$1");
}
また、タイミング繰り返し呼び出し関数の機能をする場合は、setInterval()の代わりにsetTimeOut()を使います.setInterval()には誤差があるからです.詳細はこちら
参考資料:
https://www.w3cschool.cn/xiaochengxu/nsgq1u7h.html