zoukankan      html  css  js  c++  java
  • js倒计时组件

    适用于一个页面里有多个相同倒计时的情况:

    function countDownFun(option){
        if (!option.countDownEle || !option.price || !option.endDate || !option.specialPriceEle ) return false;
        
        this.countDownEle = option.countDownEle;    //获得显示倒计时的元素
        this.price = option.price;
        this.endDate = option.endDate;
        this.specialPriceEle = option.specialPriceEle;
        this.t = 0;    
    }
    
    countDownFun.prototype = {
        init : function(){
            var nowTime = Date.parse(new Date()); 
            this.t = this.endDate - nowTime;
        },
    
        getTimeDiff : function(){
            var shijiancha = this.t;
            if (shijiancha > 0) {
                /*d=Math.floor(t/1000/60/60/24);
                h=Math.floor(t/1000/60/60%24);
                m=Math.floor(t/1000/60%60);
                s=Math.floor(t/1000%60);*/
                var days    = shijiancha / 1000 / 60 / 60 / 24;
                var daysRound   = Math.floor(days);
                var hours    = shijiancha/ 1000 / 60 / 60 - (24 * daysRound);
                var hoursRound   = Math.floor(hours);
                var minutes   = shijiancha / 1000 /60 - (24 * 60 * daysRound) - (60 * hoursRound);
                var minutesRound  = Math.floor(minutes);
                var seconds   = shijiancha/ 1000 - (24 * 60 * 60 * daysRound) - (60 * 60 * hoursRound) - (60 * minutesRound);
                //console.log(seconds);
                //console.log(oridays+'-'+hours+'-'+minutes+'-'+seconds);
                this.countDownEle.innerHTML = daysRound + "" + hoursRound + "" + minutesRound + "" + seconds + "";
                //this.countDownEle.html(this.t);
            } else {
                clearInterval(this.timeObj);
                this.specialPriceEle.innerHTML = this.price;;
            }
        },
        
        tick : function(){
            var self = this;
            this.timeObj = setInterval(function(){
                self.getTimeDiff();
                self.t = self.t - 1000;
            },1000);
        }
    }
    

    使用:

    var countDownArr = [];
    var oList = document.querySelectorAll(".video-price");
    var oListLength = oList.length;
    for (var x=0;x < oListLength;x++){
        var option = {
                countDownEle : oList[x].querySelector(".countdown"),
                price: oList[x].getAttribute("price"),
                endDate : parseInt(oList[x].getAttribute("endDate")),
                specialPriceEle : oList[x].querySelector(".specialPrice"),
        }
        countDownArr[x] = new countDownFun(option);
        countDownArr[x].init();
        countDownArr[x].tick();
    }

    使用部分的代码不用细读,原理就是,生成参数option,然后实例化,然后调用init方法和tick方法就可以了。

    效果:

  • 相关阅读:
    [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解
    [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手
    [译]:Xamarin.Android开发入门——Hello,Android深入理解
    [译]:Xamarin.Android开发入门——Hello,Android快速上手
    [译]:Orchard入门——使用标签管理内容
    [译]:Orchard入门——部件管理
    swift UITableView cell自适应高度
    设置Launch Image 启动图片(Xcode7)
    APNs 远程推送
    KVO (Key-Value-Observer, 键值观察)
  • 原文地址:https://www.cnblogs.com/doubilaile/p/8021892.html
Copyright © 2011-2022 走看看