一个简单的JS背景图时钟,非JQuery版,另附FLASH版

Saturday, September 11, 2010 吉光片羽 7

百度搜JS时钟会有一大堆结果,不过今天这个是我见过的比较牛的,当然,除了效果不错以外,重点是JS代码很值得研究,作者是就职于淘宝UED的天祁前辈,所以特此过来做个记录,也好为前端实验室留些资料。发现淘宝的前端开发人才辈出,还好我没有尝试应聘,完全就不是一个级别的说。还得继续加油努力啊,懂点JQuery的皮毛真的不算什么的说,废话不多说,看代码吧:

背景图片时钟JS代码
var TBClock=function(){
        var get=function(ele){
            return document.getElementById(ele)
        },
        fillZero=function(num,length){
            num=num.toString();
            length=length||2
            var str="";
            for(var i=0,n=length-num.length;i<n;i++){
                str+="0";
            }
            return str+num;
        },
        setPos=function(ele,value,y){
            ele.style.backgroundPosition="-"+value+"px "+y+"px";
        },
        setBigNum=function(ele,ele2,num){
            setPos(ele,num.charAt(0)*16.4,0)
            setPos(ele2,num.charAt(1)*16.4,0)
        },
        setFlashP=function(ele){
            ele.style.backgroundPosition=((TBClock.flash=!TBClock.flash)==true)?"-164px 0":"-180px 0";
        },
        setSmallNum=function(ele,ele2,num){
            setPos(ele,num.charAt(0)*10,-31)
            setPos(ele2,num.charAt(1)*10,-31)
        }
        var eles={
            h1:get("J_TB_clock_1"),
            h2:get("J_TB_clock_2"),
            m1:get("J_TB_clock_4"),
            m2:get("J_TB_clock_5"),
            s1:get("J_TB_clock_6"),
            s2:get("J_TB_clock_7"),
            p:get("J_TB_clock_3")
        }
        return {
            flash:true,
            init:function(){
                this.start();
            },
            start:function(){
      this.go();
                setInterval(this.go,1000)
            },
            go:function(){
                var T=new Date();
                setBigNum(eles.h1,eles.h2,fillZero(T.getHours()))
                setBigNum(eles.m1,eles.m2,fillZero(T.getMinutes()))
                setFlashP(eles.p)
                setSmallNum(eles.s1,eles.s2,fillZero(T.getSeconds()))
            }
        }
    }();
    TBClock.init();

当然,要完成这一些列的动作还需要HTML和CSS,这里就不累赘了,直接看下面的演示吧,或者直接移驾作品出生地:http://www.html-js.com/?p=611

HTML :\ Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行 运行此代码

最后再罗嗦一句,在标题旁的那个时钟是FLASH版的,需要可以自己下载。

点击这里获取该日志的TrackBack引用地址

日志标签: JS  JQuery  Flash  时钟  收藏  

已有人对此文发表了评论

  1. 引用该评论 天祁 12/8/2010 5:31:38 PM 回复
    作者来围观下,代码一般般了,这个是同事紧急跟我要的,我就完全原生js写了一个
    吉光片羽 于 2010-12-10 9:17:33 回复

    最近有用jquery写一些插件,发现代码差距太大了,我的那些写法估计是上个世纪的了……还得好好补充一下营养啊……

  2. 引用该评论 石头 9/18/2010 9:12:02 AM 回复
    每秒执行一次,然后根据当前的时间数字定位切割背景图片。非常好的思路呢。
    吉光片羽 于 2010-9-18 11:44:39 回复

    是的,虽然没研究透代码,但是很有冲动做个JQuery版的,呵呵。

  3. 引用该评论 uggaustralia 9/15/2010 1:54:28 PM 回复
    不错我很喜欢!
    吉光片羽 于 2010-9-16 13:17:36 回复

    那就赶紧收藏、重要的是分享,最重要的是要有本页的地址,呵呵。

  4. 引用该评论 奈维摩尔 9/14/2010 11:00:48 PM 回复
    这个时钟效果真不错,代码写的也很牛X- -。
    吉光片羽 于 2010-9-16 13:16:56 回复

    效果应该能做得更棒,主要还是代码写得牛X,等我研究透了,我就考虑去应聘,嘎嘎!

  5. 引用该评论 陈剑 9/13/2010 5:40:26 PM 回复
    再哪里呢
    吉光片羽 于 2010-9-16 13:12:35 回复

    可以到原作地址看效果,也可以在代码框右上角点击运行代码查看效果。

  6. 引用该评论 阿修罗 9/13/2010 5:05:36 PM 回复
    果然是高级技师来的,一下就搞定了。
    吉光片羽 于 2010-9-16 13:11:57 回复

    呃,搞定了什么?有点晕,不过还是知道你应该是在夸我,哈哈!

  7. 引用该评论 airmaxshoes 9/13/2010 1:49:01 PM 回复
    在哪里下载的?
    吉光片羽 于 2010-9-16 13:11:21 回复

    一些比如腾讯TT的浏览器会有FLASH提取功能的。

发表评论:

邮箱网址为选填;若您注册了GRAVATAR,请填写邮箱(不会公开),否则最好不填,您可在提交评论前选择表情头像;点击他人头像可引用其评论。插入UBB

About me

Name: KandyTang
Age: 30-
Location: Guilin, China
QQ: 121885959
Email: KandyT@qq.com

My Works

中文酷博聚合 汽车手绘·视频·教程 史努比(中文)网 免费的PJBlog皮肤 淘宝创意导购 桂林{摄影}品牌

Gallery

Unnamed Album

Unnam... (4)

复线文字LOGO设计

复线文字L... (10)

订书钉的创意-微型城市

订书钉的创... (4)

2010元宵烟火

2010元宵烟火 (7)

国外贺卡设计欣赏

国外贺卡设计欣赏 (20)