zoukankan      html  css  js  c++  java
  • 以 “日” 为单位的可以翻页的效果 显示为 2016/01/11

    先上效果图:

    动作和“周”是一样的,步骤简化,:

    一、日期容器html

    <!--日期的容器-->
            <div class="headerDiv">
                <div id="previousDiv" class="previousImgDiv"></div>
                <div id="nextDiv" class="unNextImgDiv" ></div>
                <div id="headerTitleDiv" class="titleDiv"><input id="title" type="date" style="background-color:#f0f0f0;border:none;font-size: 20px;text-align:center;margin-left: 15%;"/></div>
            </div>

    注意:“日”的input的类型为date

    二、JS方法,“日”的变量与方法与“周不一样”

    1、变量自定义

    var previousDiv;
    var nextDiv;
    var headerTitleDiv;
    var title;

    2、延迟加载

    $(document).ready(function(){     
    
    previousDiv = document.getElementById('previousDiv');
    nextDiv = document.getElementById('nextDiv');
    headerTitleDiv = document.getElementById('headerTitleDiv');
    
    title = document.getElementById('title');
    
    //title的日期转换为自定义日期格式
    title.value = convertDateStr(new Date());
    //title的input事件
    $(title).on('input', function(){
      if(this.value.length == 0){
        this.value.length == convertDateStr(new Date());
      }else{
        if(checkCanDoNext()){
        fetchDate();
        return;
        }
      }
    });
    }

    3、所有日期方法

    /**
     * 以下为自定义日期方法
     * 
     * 前一页的单击事件
     * 后一页的单击事件
     * 自定义格式化日期的方法
     * 判断日期返回的个数
     * 判断下一页是否可点击
     * 判断当前日期是否小于指定日期,结果为true
     * 重置下一页的监听事件
     * 设置上一页的日期
     * 设置下一页的日期
     */
    
    function resolveData (data) {
        for (var i = 0; i < data.length; i++) {
            insertULChild(convertHTML(data[i],i));
            buildRadarReport(tmpReportDivName + i,data[i]);
        };
    }
    
    function convertHTML (data,index) {
        var tmpMore;
        return tmpHTML.replace('%reportDivId',tmpReportDivName + index)
        .replace('%num',index+1+"")
        .replace('%name',data.name)
        .replace('%category',data.role)
        .replace('%status',data.verificationStatus);
    }
    
    
    //前一天的单击事件
    function previousDivTapEvent(){
        resetNestEvent();
        nextDiv.className = 'nextImgDiv';
        title.value = getPreviousDate(title.value);
        fetchDate();
        fetchDate2();
    }
    
    //后一天的单击事件
    function nextDivTapEvent(){
        title.value = getNextDate(title.value);
        if(checkCanDoNext){
            fetchDate();
            fetchDate2();
            nextDiv.removeEventListener('tap', nextDivTapEvent);
            return;
        }
        fetchDate();
        fetchDate2();
    }
    
    /**
     * 格式化日期 显示为样式为2016-1-8,参数为date
     * @param  date
     */
    function convertDateStr(date){
        var currentDate = date;
        var year = currentDate.getFullYear();
        var month = getLength2(currentDate.getMonth() + 1);
        var day = getLength2(currentDate.getDate());
        return year+"-"+month+"-"+day;
    }
    
    /**
     * 判断月和日的返回个数,参数为number
     * 如果小于10 number < 10,就返回数前加0  如返回为9,显示为09
     * 如果大于10 ?否则  返回数不加任何数字  如返加为11,就显示11
     */
    
    function getLength2(number){
        return number < 10 ? "0" + number : number + "";
    }
    //获取上一页的日期
    function getPreviousDate(date){
        var currentDate = Date.parse(date);
        currentDate = currentDate - 1000 * 60 * 60 * 24;
        var tmpDate = new Date();
        
        tmpDate.setTime(currentDate);
        return convertDateStr(tmpDate);
    }
    //获取下一页的日期
    function getNextDate(date){
        var currentDate = Date.parse(date);
        currentDate = currentDate + 1000 * 60 * 60 * 24;
        var tmpDate = new Date();
        
        tmpDate.setTime(currentDate);
        return convertDateStr(tmpDate);
    }
    //判断下一页是否可以点击
    function checkCanDoNext() {
        if (checkDate(title.value)) {
            title.value = convertDateStr(new Date());
            nextDiv.className = 'unNextImgDiv';
            nextDiv.removeEventListener('tap', nextDivTapEvent);
            return true;
        } else {
            resetNextEvent();
            nextDiv.className = 'nextImgDiv';
            return false;
        }
    }
    //判断当前日期是否小于指定日期
    function checkDate(dateStr){
        var currentDate = new Date();
        var selectDate = Date.parse(dateStr);
        var tmpDate = new Date();
        tmpDate.setTime(selectDate);
        var currentDateCount = currentDate.getFullYear() * 100 + currentDate.getMonth();
        var selectDateCount = tmpDate.getFullYear() * 100 + tmpDate.getMonth();
        return currentDateCount <= selectDateCount;
    }
    //重置下一页的监听事件
    function resetNestEvent(){
        nextDiv.removeEventListener('tap',nextDivTapEvent);
        nextDiv.addEventListener('tap', nextDivTapEvent);
    }

     class样式请参考:http://www.cnblogs.com/baiyygynui/p/5124575.html

  • 相关阅读:
    MySQL Explain优化
    mysql联合索引
    MySQL索引类型
    php常用的排序算法与二分法查找
    mysql 主从复制(mysql双机热备的实现)
    mysql 主从复制 (2)
    Linux 查看进程之PS命令
    PHP isset 和 array_key_exists 对比
    Linux md5sum 的用法
    Linux Sphinx 安装与使用
  • 原文地址:https://www.cnblogs.com/baiyygynui/p/5122268.html
Copyright © 2011-2022 走看看