Недавно мы делаем лотерейный проект Arangement Five. Каждый период имеет период покупки лотереи. То есть, когда пользователь открывает эту пять страниц этого соглашения, на сервере будет отправлено отставка (оставшееся время до конца этого лотерейного периода), а затем на этот раз будет представлено пользователю на стороне клиента, что позволит пользователю получить оставшееся время этого периода лотлере.
Принцип реализации довольно прост. Я не буду вдаваться в подробности здесь. Запустите следующий код, чтобы просмотреть демонстрацию:
<! Doctype html> <html> <head> <meta http-equiv = "content-type" content = "text/html; charset = gbk"/> <title> index </title> <стиль тип = "text/css"> em {color:#f00;} </style> </head> <body> <div> <sip> </divimime> </divime> </divime> </divime> </divime> </divime> type = "text/javascript"> var thetime = function () {this.init.apply (this, arguments);}; thetime.prototype = {init: function (obj) {var that = this; obj = that.buildparam (obj); that.callback = obj.callback; var container = that.container = document.getElementbyid (obj.container); container.innerhtml = '<em> </em> час <em> </em> минута <em> </em> секунд'; var touspace = tht.hourspace = container.getelementsbytagname ('em') [0]; var intoperpace = that.minutespace = container.getelementsbytagname ('em') [1]; var secondspace = tht.secondspace = container.getelementsbytagname ('em') [2]; if (obj.remaintime == 0) {that.resettime (); возвращаться; } that.hours = math.floor (obj.remaintime/3600); что._Remainder1 = obj.remaintime % 3600; that.minutes = math.floor (that._remainder1/60); что. Seconds = that._remainder1 % 60; var -timer = this.timer = setInterval (function () {this.rendertime.apply (that);}, 1000); }, buildParam: function (obj) {obj = {// Контейнер является контейнером ID узла DOM: obj.container || «Контейнер», останки: число (obj.remaintime) || 0, // обратный вызов после обратного отсчета завершен обратный вызов: obj.callback || новая функция}; вернуть OBJ; }, REETTIME: function () {var that = this; that.container.innerhtml = "склонность"; }, // Обновление времени rendertime: function () {// Debugger; var that = это; if (that.seconds> 0) {that.seconds--; } else {that.seconds = 59; if (that.minutes> 0) {that.minutes--; } else {that.minutes = 59; if (that.hours> 0) {that.hours--; }}} // Standby if (that.hours == 0 && that.minutes == 0 && that.seconds == 0) {// выполнить обратный вызов that._callback (); } var bithandle = that.bithandle; var _hour = bithandle (that.hours); var _minute = bithandle (that.minutes); var _second = bithandle (that.seconds); that.hourspace.innerhtml = _hour; that.minutespace.innerhtml = _minute; это. secondspace.innerhtml = _second; }, // Для обработки битов обязательно верните двухзначный номер BitHandle: function (num) {var str = num.toString (); if (str.length <2) {str = 0 + str; } return str; }, _callback: function () {var that = this; ClearInterval (that.timer); that.callback (); }}; new TheTime ({// Контейнер идентификатор контейнера: 'remaintime', // оставшееся время, возвращаемое сервером.