码迷,mamicode.com
首页 > 其他好文 > 详细

倒计时

时间:2016-05-13 07:42:12      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

demo:

<!DOCTYPE HTML>
<html lang="zh">
<head>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
    <meta name="applicable-device" content="pc,mobile" />
    <title>买房玩吧</title>
    <meta name="renderer" content="webkit" />
    <meta name="keywords" content="房产资讯,房价走势,地产名博,企业动态,房产投资"/>
    <meta name="description" content="凤凰房产北京为您提供最新的房产资讯。"/>
	<script src="http://s0.ifengimg.com/static/js/jquery-1.7.2.min_c4de8813.js"></script>
	<style>
	style
	</style>

</head>
<body>



<p class="countdown" time="14566752000">倒计时:
	<span class="day">0</span>天
	<span class="hour">00</span>小时
	<span class="min">00</span>分
	<span class="sec">00</span>秒
</p>


<script type="text/javascript" src="countDown_clear.js"></script>

</body>
</html>

JS:

/*******************倒计时********************/

function countDown(selecter) {
    this.selecter = selecter;
    this.container = $(selecter);
    this.timer = [null, null, null, null];
}
countDown.prototype = {
    init: function() {
        var me = this;
        me.container = $(document).find(me.selecter);
        for (var i = 0; i < me.container.length; i++) {
            clearInterval(me.timer[i]);
        }

        for (var i = 0; i < me.container.length; i++) {
            var obj = $(me.selecter + ":eq(" + i + ")");
            var endTime = obj.attr("time");
            this.countdown(obj, endTime, i);//先执行一次,显示倒计时结束的状态;

            var oDate = new Date();
            var s = endTime - parseInt(oDate.getTime() / 1000);
            if (s < 0) continue;
            (function(obj, endTime, i){
                me.timer[i] = setInterval(function() {
                    me.countdown(obj, endTime, i);
                }, 1000);
            })(obj, endTime, i);
        }

    },
    countdown: function(obj, endTime, index) {
        var oDate = new Date();
        var s = endTime - parseInt(oDate.getTime() / 1000);
        if (s < 0) {    //活动结束后
            data = {
                day: 0,
                hour: 00,
                min: 00,
                sec: 00
            };
            for (var i in data) {
                obj.find("." + i).html(data[i]);
            }
            obj.html("活动进行中!");
        } else {
            var data = {};
            data.day = parseInt(s / 86400);
            s %= 86400;
            data.hour = parseInt(s / 3600);
            s %= 3600;
            data.min = parseInt(s / 60);
            data.sec = s % 60;
            for (var i in data) {
                obj.find("." + i).html(data[i]);
            }
        }
    }
};

$(document).ready(function() {
    var clock = new countDown(".countdown");
    clock.init();
});

JS-滚到可视区才开始  倒计时:

/*******************倒计时********************/

function countDown(selecter) {
    this.selecter = selecter;
    this.container = $(selecter);
    this.timer = [null, null, null, null];
    this.onlyOne = false;
    this.cover = [false, false, false, false];
}
countDown.prototype = {
    init: function() {
        var me = this;
        me.container = $(document).find(this.selecter);
        for (var i = 0; i < me.container.length; i++) {
            clearInterval(me.timer[i]);
        }
        //if (me.onDoing()) {
        if (me.onlyOne) {
            return;
        };
        me.onlyOne = true;
        for (var i = 0; i < me.container.length; i++) {
            me.doingCount();//先执行一次,免得出现一秒的0;
            me.timer[i] = setInterval(function() {
                me.doingCount();
            }, 1000);
        }
        // }
        // this.bind()

    },
    bind: function() {
        var me = this;
        $(window).on(‘scroll‘, function() {
            if (me.onDoing()) {
                if (me.onlyOne) {
                    return;
                };
                me.onlyOne = true;
                for (var i = 0; i < me.container.length; i++) {
                    me.timer[i] = setInterval(function() {
                        me.doingCount();
                    }, 1000);
                }
            } else {
                for (var i = 0; i < me.container.length; i++) {
                    clearInterval(me.timer[i]);
                }
                me.onlyOne = false;
            }
        });
    },
    onDoing: function() {
        var st = $("html").scrollTop() || $("body").scrollTop();
        var cH = $(window).height();
        var cst = $(".doing-countdown").offset().top;
        var conH = $(".doing-countdown").height();
        return st > cst - cH && st < cst + conH;
    },
    doingCount: function() {
        this.container = $(document).find(this.selecter);
        for (var i = 0; i < this.container.length; i++) {
            var obj = $(this.selecter + ":eq(" + i + ")");
            var endTime = obj.attr("time");
            this.countdown(obj, endTime, i);
        }
    },
    countdown: function(obj, endTime, index) {
        var oDate = new Date();

        var s = endTime - parseInt(oDate.getTime() / 1000);
        if (s < 0) {    //活动结束后
            data = {
                day: 0,
                hour: 00,
                min: 00,
                sec: 00
            };
            for (var i in data) {
                obj.find("." + i).html(data[i]);
            }
            if (this.cover[index]) {
                return;
            }
            this.cover[index] = true;
            obj.html("活动进行中!");
        } else {
            var data = {};
            data.day = parseInt(s / 86400);
            s %= 86400;
            data.hour = parseInt(s / 3600);
            s %= 3600;
            data.min = parseInt(s / 60);
            data.sec = s % 60;
            for (var i in data) {
                obj.find("." + i).html(data[i]);
            }
        }

    }

};

$(document).ready(function() {
    var clock = new countDown(".countdown");
    clock.init();
});

  

  

倒计时

标签:

原文地址:http://www.cnblogs.com/mbyund/p/5484990.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!