• 简单的签到日历


    <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=no" />
        <title>签到赚积分</title>
        <meta name="format-detection" content="telephone=no">
        <!-- <link rel="stylesheet" href="css/css.css">
        <link rel="stylesheet" href="css/tasks.css">
        <link rel="stylesheet" href="css/common.css"> -->
        <style>
        body{font-size:0.24rem;color:#666;}
        i{font-style:normal;}
        .fl{float:left;}
        .fr{float:right;}
        .tc{text-align:center;}
        .mem-sign-st{background:-webkit-gradient(linear, 0 bottom, 100% top, from(#fbaf74), to(#f48b73));background:gradient(linear, 0 bottom, 100% top, from(#fbaf74), to(#f48b73));height:4.93rem;position:relative;text-align:center;color:#fff;}
        .mem-sign-st-detail{line-height:0.5rem;font-size:0.3rem;padding:0.2rem;}
        .mem-sign-circle{2.04rem;height:2.04rem;padding:0.16rem;background:rgba(0,0,0,0.3);border-radius:50%;margin-left:2.56rem;margin-top:0.2rem;}
        .mem-sign-before.mem-sign-circle{background:rgba(255,255,255,0.3);}
        .mem-sign-circle-text{2.04rem;height:2.04rem;background:#efe2dc;border-radius:50%;font-size:0.48rem;line-height:2.04rem;color:#919191;}
        .mem-sign-before .mem-sign-circle-text{background:#fff;color:#ffa895;}
        .mem-sign-tips{display:inline-block;2.94rem;line-height:0.5rem;background:rgba(0,0,0,0.3);border-radius:0.25rem;margin-top:0.4rem;}
    
        /*签到*/
        .sign-date-wrap{margin:0.2rem;background:#fff;border:1px solid #dddee0;border-radius:0.04rem;font-size:0.3rem;}
        .sign-date-top{line-height:0.7rem;font-size:0.28rem;padding:0 0.4rem;padding-top:0.1rem;}
        .sign-date-top i{color:#bebec1;font-size:0.4rem;}
        .sign-date-week,.sign-date-days{padding-left:0.1rem;}
        .sign-date-days{padding-bottom:0.2rem;}
        .sign-date-week span,.sign-date-days span{float:left;0.9rem;line-height:0.8rem;text-align:center;}
         /*IE7不支持的清除浮动*/
        .clearfix:after{
            visibility:hidden;
            display:block;
            font-size:0;
            content:".";
            clear:both;
            height:0;
        }
        </style>
        <script type="text/javascript">
            (function (root) {
                var     docEl = document.documentElement,
                    timer = null,
                    width, last;
                        
                function changeRem () {
                    width = docEl.getBoundingClientRect().width;
                    if (last === width) { return; }
                    last = width;
                    root.rem = (width / 750) * 100;
                    if (/ZTE U930_TD/.test(navigator.userAgent)) {
                            root.rem = root.rem * 1.13;
                    }
                    docEl.style.fontSize = root.rem + 'px';
                }
    
                changeRem();
    
                root.addEventListener('resize', function () {
                    clearTimeout(timer);
                    timer = setTimeout(changeRem, 300);
                });
    
                root.addEventListener('orientationchange', function () {
                    clearTimeout(timer);
                    timer = setTimeout(changeRem, 300);
                });
            })(window, undefined);
        </script>
    
    </head>
    <body>
        <div class="mem-sign-st">
            <div class="mem-sign-st-detail clearfix">
                <span class="fl">累计签到 <i class="u-text-yellow">4</i> 次</span>
                <span class="fr">累计签到积分 <i class="u-text-yellow">4</i></span>
            </div>
            <!-- <div class="mem-sign-circle">
                <div class="mem-sign-circle-text">已签到</div>
            </div> -->
            <div class="mem-sign-before mem-sign-circle">
                <div class="mem-sign-circle-text">签到</div>
            </div>
            <div class="mem-sign-tips">连续签到可获得更多积分</div>
        </div>
        <div class="sign-date-wrap">
            <div class="sign-date-top clearfix tc">
                <i class="iconfont icon-arrow-right fr">></i>
                2017年4月
                <i class="iconfont icon-arrow-left fl"><</i>
            </div>
            <div class="sign-date-week clearfix">
                <span>日</span>
                <span>一</span>
                <span>二</span>
                <span>三</span>
                <span>四</span>
                <span>五</span>
                <span>六</span>
            </div>
            <div class="sign-date-days clearfix" id="sign-days-box">
            </div>
        </div>
    </body>
    <script>
        var signDate = function () {
            this.reset();
        }
        signDate.prototype.reset = function (m) {
            this.date = new Date();
            this.year = this.date.getFullYear();
            this.month = this.getMonth();
    
            if (m < 0) {
                this.date = new Date(this.year, this.month - 2);
                this.year = this.date.getFullYear();
                this.month = this.getMonth();
            }
    
            if (m > 0) {
                this.date = new Date(this.year, this.month);
                this.year = this.date.getFullYear();
                this.month = this.getMonth();
            }
    
            this.days = new Date(this.year, this.month, 0).getDate(); // 获取当月的天数
            this.firstWeek = new Date(this.year, this.month - 1, 1).getDay(); // 获取当月第一天的星期
            this.lastWeek = new Date(this.year, this.month - 1, this.days).getDay(); // 获取当月最后一天的星期
            this.lastMonthDays = new Date(this.year, this.month - 1, 0).getDate(); // 获取上个月的天数
            this.daysArray = []; // 展示日期数组
    
            this.init();
        }
        signDate.prototype.getMonth = function () {
            var m = parseInt(this.date.getMonth()) + 1;
            if (m < 10) {
                m = "0" + m;
            }
            return m;
        }
        signDate.prototype.makeDaysArray = function () {
            // 本月日期插入数组
            for (var i = 1; i < this.days + 1; i++) {
                this.daysArray.push({d: i});
            }
            // 上月需要显示的日期
            for (var j = 0; j < this.firstWeek; j++){
                this.daysArray.unshift({d: this.lastMonthDays - j, other: true});
            }
            // 下月需要显示的日期
            var l = this.daysArray.length;
            for (var m = 1; m < 42 - l + 1; m++) {
                this.daysArray.push({d: m, other: true});
            }
        }
        signDate.prototype.init = function () {
            this.makeDaysArray();
            this.makeTemplate(); // 测试
            return this.daysArray;
        }
        signDate.prototype.nextMonth = function () {
            this.reset(1);
        }
    
        signDate.prototype.prevMonth = function () {
            this.reset(-1);
        }
    
        signDate.prototype.makeTemplate = function () {
            var l = this.daysArray.length,
                dom = null,
                container = document.getElementById('sign-days-box');
            for (var i = 0; i < l; i++) {
                dom = document.createElement('span');
                dom.innerHTML = this.daysArray[i].d;
                if (this.daysArray[i].other) {
                    dom.setAttribute('style', 'color:#c4c4c4')
                }
                container.appendChild(dom);
            }
        }
    
        new signDate()
    
    </script>
    </html>

    这块的代码写了但是没绑定事件,自己绑定吧,函数写好了

    signDate.prototype.nextMonth = function () {
            this.reset(1);
        }
    
        signDate.prototype.prevMonth = function () {
            this.reset(-1);
        }

    ++++++++预览效果如下:++++++++++++++
     
  • 相关阅读:
    ASM FailGroup验证
    oracle 11g RAC 补丁升级方法
    数据库优化一
    TypeScript(类—继承—多态)
    TypeScript(安装配置—数据类型—函数)
    IE9兼容
    移动端自适应vw、vh、rem
    npm命令随笔
    安卓、IOS兼容问题
    获取页面大小和元素位置offset、client、scroll
  • 原文地址:https://www.cnblogs.com/youzhuxiaoyao/p/6840817.html
Copyright © 2020-2023  润新知