简单计时器

最近写了很多微信端的互动小游戏,比如下雪花 限时点击 赢取奖品,限时拼图,限时答题等,都是些限时‘游戏’(其实算不上游戏,顶多算是具有一点娱乐性的小互动而已)

上面出现了4个限时,对,没错,这里记录的就是最近写的 ‘计时器’ ...

恩 , 计时器 就一个setInterval 或 setTimeout 即可实现 ,代码不会超过十行!

但是不防抱着没事找事的心态,来写个能复用的计时器

1.能倒计时 也能顺计时

2.复位、暂停、停止,启动功能

//计时器
window.timer = timer || (function(){
    function mod(opt){
        //可配置参数 都带有默认值
        //必选参数
        this.ele = typeof(opt.ele)==‘string‘?document.getElementById(opt.ele):opt.ele;//元素
        //可选参数
        this.cardinalNum = opt.cardinalNum||0;//时间基数
        this.endT = opt.endT==‘undefined‘?24*60*60:opt.endT;//结束时间 默认为一天
        this.setStr = opt.setStr||null;//字符串拼接
        this.countdown = opt.countdown||false;//倒计时

        //不可配置参数
        this.timeV = this.cardinalNum;//当前时间
        this.startB = false;//是否启动了计时
        this.pauseB = false;//是否暂停
    }
    mod.prototype = {
        constructor : ‘timer‘,
        start : function(){
            if(this.pauseB==true){
                this.pauseB = false;
                return;
            }
            if(this.countdown==false&&this.endT<=this.cardinalNum){
                return false;
            }else if(this.countdown==true&&this.endT>=this.cardinalNum){
                return false;
            }
            this.startB = true;
            var v = this.cardinalNum,
                this_ = this,
                anim = null;
            anim = setInterval(function(){
                if(this_.startB==false||v==this_.endT){clearInterval(anim);return false}
                if(this_.pauseB==true)return;
                this_.timeV = this_.countdown?--v:++v;
                this_.ele.innerHTML = this_.setStr(this_.timeV);
            },1000)
        },
        reset : function(){
            this.timeV = this.cardinalNum;
        },
        pause : function(){
            if(this.startB == true)this.pauseB = true;
        },
        stop : function(){
            this.startB = false;
        }
    }
    return mod;
})();

调用方式:

timerO = new timer({
            ele : ‘timeBox‘,
            cardinalNum : this_.time/1000,
            countdown : true,
            endT : 0,
            setStr : function(num){
                return num+‘‘‘;
            }
        });

这里传入的方法 setStr是计数器计算的当前时间写入ele前的字符串处理

countdown是否为倒计时 默认为顺计时

cardinalNum为时间基数

可以通过 timerO.timeV 来获取当前时间

代码多了一堆,哈哈

时间: 2024-12-30 03:59:15

简单计时器的相关文章

Android简单计时器

[java] view plaincopyprint? <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width= "fill_pa

Java 简单计时器

代码 package com.benywave; import java.util.Timer; import java.util.TimerTask; public class TimerTest { private Timer timer; private long elapsedSeconds; public TimerTest() { timer = new Timer(); } public static void main(String[] args) { //System.out.

简单Unity时间架构设计(克洛诺斯之匙)

简单Unity时间架构设计(克洛诺斯之匙) 好吧,这次的题目有点标题党之嫌,提出这个设计,是因为最近玩了鬼泣,其中有一个关卡叫做“为了自己的主人”,任务中,需要利用克洛诺斯之匙将时间变慢,便于通过激光镇. 使用克洛诺斯之匙之后,主角的行动是正常的,运走,攻击等等.而其他的如怪物,死亡特效等对象的更新都变慢了.当时我想,如何让不同的对象能够按不同频率更新呢? 在unity中,脚本按时更新的是Time.FixedUpdate,改变其速率只需要修改Time.timeScale就行了.然而这么做非常“鲁

2.6 内核中的计时器和列表【转】

转自:http://www.cnblogs.com/hoys/archive/2011/11/14/2248586.html 计时器是所有操作系统的一个必要组成部分,您将发现多个计时器机制.我们将首先简要介绍一些 Linux 计时器模式,然后深入研究它们的运行方式. (Linux)时间的起源 在 Linux 内核中,时间由一个名为 jiffies 的全局变量衡量,该变量标识系统启动以来经过的滴答数.在最低的级别上,计算滴答数的方式取决于正在运行的特定硬件平台:但是,滴答计数通常在一次中断期间仍然

Chronometer android计时器组件Chronometer的使用,android通话时长计时控件

在安卓开发过程中经常需要计数器的使用,我们可以用handler实现间隔性的操作. 例如按两次返回back退出,隔几秒重复换页面等. 但是也经常有一类需求类是打电话时候记录时长的操作. 这就用到了android中 android.widget包下的Chronometer 这个组件. 转载请注明:谢谢 Chronometer介绍 Class that implements a simple timer. * <p> * You can give it a start time in the {@l

ARM Linux系统的时钟机制

1. Linux下有两类时钟: 1.1 实时钟RTC 它由板上电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟.当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的. 1.2 系统时钟 “System clock”也叫内核时钟或者软件时钟,是由软件根据时间中断来进行计数的,内核时钟在系统关机的情况下是不存在的,所以,当操作系统启动的时候,内核时钟是要读取RTC时间来进行时间同步. 2. 标准计时器 2.1 时钟滴答计时(jiffies)的

寒假学习进度三——安卓的一些基本组件

今天主要学习了安卓一些简单的组件,前两天都是按照案例(demo)敲的,对其中用到的组件不是特别的了解. TextView(文本框组件):主要用来显示文字的一些信息.通过修改TextView的属性可以改变文字的颜色,大小,位置.这个组件较比较简单,容易上手.这里就不过多叙述了. Button(按钮):是程序用于和用户进行交互的一个重要控件.Android Studio会对Button中的所有英文字母自动进行大写转换,你可以使用将textAllCaps属性改为false来禁用这一默认特性. Edit

质量六大属性之可用性在代码端的实现

三大点: 一.错误检测 (1)命令/响应 个人理解响应就像是一个暗号,我发过去上半部分,然后你能返回对应的下半部分,那么这个过程就没毛病 例1: 1 import requests 2 r=requests.get("http://www.baidu.com") 3 r.status_code status_code 其中 r.status_code 就是获取向网页请求返回的结果 如果结果是200则成功,如果是其他的则失败,这一例是对 是否成功获取网页的一个响应 例2: 1 #incl

c# 自己制作一个简单的项目倒计时器

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace date { public partial class Form1 : Form { public Form1() { InitializeCompo