zoukankan      html  css  js  c++  java
  • 自适应备忘录 demo

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
        <title>工作台-备忘录</title>
     <link rel="stylesheet" href="../css/weixincrm.min.css">
     <script type="text/javascript" src="../js/zepto.min.js"></script>
     <script type="text/javascript" src="../js/weixincrm.min.js" ></script>
     <style type="text/css">

    .calendar2 h2{line-height: 0.8rem;height: 0.8rem; text-align: center; color: #25a9e6; font-size: 0.32rem; background-color: #f5f5f5;}
    .calendar2 table tbody{ 100%; position: relative; z-index: 60;}
    .calendar2 table{ 100%;background-color: #fff; border-collapse:collapse;  }
    .calendar2 table thead{background-color: #c6dde4;}
    .calendar2 table thead  tr { height: 0.5rem; line-height: 0.5rem; }
    .calendar2 table thead tr td{ color: #666; font-size: 0.26rem; text-align: center; font-weight: 500;}
    .calendar2 table thead tr td .event-wekday{ 0.6rem;}
    .calendar2 table tbody{padding-top: 0.2rem;}

    .calendar2 table tbody tr{height: 0.6rem;line-height: 0.6rem; }
    .calendar2 table tbody  tr td{color: #333; font-size: 0.26rem; text-align: center; padding-top: 0.2rem;font-weight: 400;}
    .calendar2 table tbody tr td .event-day{ 0.6rem; display: inline-block;border: 2px solid #fff;}
    .calendar2 table tbody tr td span.active{ border: 2px solid #3399cc;border-radius: 50%;}
    .calendar2 table tbody tr td .current{ 0.6rem height:0.6rem; border-radius: 50%; background-color: #3399cc; color: #fff;}
    .day-event2 {font-size: 0.28rem;color: #333;box-sizing: border-box; margin-left: 0.35rem; margin-right: 0.25rem; border-left: 2px solid #ddd; padding-top: 0.2rem;position: relative;display: none;}
    .day-event2 .dost{ 0.34rem; height: 0.34rem; border: 2px solid #e3e3e3; border-radius: 50%;position: absolute;    top: 0.43rem;left: -0.25rem;text-align: center;z-index: 2;}
    .day-event2 .dost b{background-color: #ef5e5e; 0.29rem; height: 0.29rem; border-radius: 50%; position: absolute;left: 0.028rem;top: 0.025rem;}
     .day-event2 div{margin-left: 0.45rem; background-color: #fff;  padding-top: 0.15rem; border-radius: 0.05rem; padding-left: 0.2rem; position: relative;}
     .day-event2 div p{ line-height: 0.3rem;}
     .day-event2 div .arrow-left{border-bottom: 0.3rem solid transparent;border-top: 0.3rem solid transparent;border-right: 0.3rem solid #fff; font-size: 0;line-height: 0; position: absolute;left: -0.25rem;/* top: 0.4rem; */}
    .day-event2 .time-text{font-size: 0.22rem; color: #999;padding-top: 0.1rem;padding-bottom: 0.1rem;}
    .calendar2 table tbody tr td .current-day{ 0.6rem height:0.6rem; border-radius: 50%; background-color: #3399cc; color: #fff;border: 2px solid #3399cc;}
    .calendar2 table tbody tr td .event{position: relative;background: #e7e7e7;border: 2px solid #e7e7e7;border-radius: 50%;}
     </style>



    </head>
    <body>

    <div id="section_container">
    <section id="index-section"  class="active">
      <header>
      <div class="goback2"><h1>客户信息</h1><a href="#" class="backhref"></a></div>
      <div class="calendar2 article-top-backhref2">
          <h2 class="month">9月2016</h2>
           <table>
                <thead class="head">
                  <tr>
                      <td><span class="event-wekday">周日<span></td>
                      <td><span class="event-wekday">周日<span></td>
                      <td><span class="event-wekday">周日<span></td>
                      <td><span class="event-wekday">周日<span></td>
                      <td><span class="event-wekday">周日<span></td>
                      <td><span class="event-wekday">周日<span></td>
                    <td><span class="event-wekday">周日<span></td>
                  </tr>
                </thead>
                <tbody class="event-calendar2">
                  <tr class="row1">
                  <td><span class="event-day"></span></td>
                  <td><span class="event-day"></span></td>
                  <td><span class="event-day"></span></td>
                  <td><span class="event-day"></span></td>
                  <td><span class="event-day active">1</span></td>
                  <td><span class="event-day">2</span></td>
                  <td><span class="event-day">3</span></td>
                  </tr>
                  <tr class="row2">
                  <td><span class="event-day">4</span></td>
                  <td><span class="event-day">5</span></td>
                  <td><span class="event-day">6</span></td>
                  <td><span class="event-day">7</span></td>
                  <td><span class="event-day">8</span></td>
                  <td><span class="event-day">9</span></td>
                  <td><span class="event-day">10</span></td>
                  </tr>
                  <tr class="row3">
                  <td><span class="event-day">11</span></td>
                  <td><span class="event-day">12</span></td>
                  <td><span class="event-day">13</span></td>
                  <td><span class="event-day">14</span></td>
                  <td><span class="event-day">15</span></td>
                  <td><span class="event-day">16</span></td>
                  <td><span class="event-day">17</span></td>
                  </tr>
                  <tr class="row4">
                  <td><span class="event-day">18</span></td>
                  <td><span class="event-day">19</span></td>
                  <td><span class="event-day current">20</span></td>
                  <td><span class="event-day">21</span></td>
                  <td><span class="event-day">22</span></td>
                  <td><span class="event-day">23</span></td>
                  <td><span class="event-day">24</span></td>
                  </tr>
                  <tr class="row5">
                  <td><span class="event-day">25</span></td>
                  <td><span class="event-day">26</span></td>
                  <td><span class="event-day">27</span></td>
                  
                  <td><span class="event-day">30</span></td>
                  <td><span class="event-day"></span></td>
                  </tr>
                </tbody>
              </table>
      </div>

     </header>
    <article class="active article-top-0 clearfix">
      <div class="scroller scroller-top">
        <div class="list">
        <!--  <div class="day-event2" date-day="19" date-month="9" date-year="2016" data-number="0" style="display: block;">
                  <span class="dost"><b></b></span><div><a class="arrow-left"></a><p>Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras justo odio, dapibus ac facilisis in, egestas eget quam</p>
                  <p class="time-text">16:52</p>                 
                  </div>
          </div>
            <div class="day-event2" date-day="19" date-month="9" date-year="2016" data-number="0" style="display: block;">
                  <span class="dost"><b></b></span><div><a class="arrow-left"></a><p>Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras justo odio, dapibus ac facilisis in, egestas eget quam</p>
                  <p class="time-text">16:52</p>                 
                  </div>
          </div> -->
         </div>
      </div>
    </article>
    </section>
     </div>
     <script type="text/javascript">

     $(document).ready(function(){
        $('.scroller').css('top',$('header').height());
     })
           
     </script>
    <script src="../js/simplecalendar2.js" type="text/javascript"></script>
    <!--   <script src="../js/jquery-latest.min.js" type="text/javascript"></script>
    <script src="../js/simplecalendar.js" type="text/javascript"></script> -->

    </body>
    </html>


    var calendar = {

        init: function(ajax) {
            
            if (ajax) {

    //       ajax call to print json
    //       
          $.ajax({
                type: 'GET',
                url: '../data/events.json',
                dataType: 'json',
              
                 success: function(data){
                 var events = data.events;
       // loop json & append to dom
                  var myDate = new Date();
                  var now = myDate.getFullYear() +"/" +(myDate.getMonth()+1)+"/"+myDate.getDate();
                for (var i = 0; i < events.length; i++)
                {
                    var time = events[i].year + "/" + events[i].month +"/"+events[i].day;
                

                    if(time == now )
                    {
                    $('.list').append('<div class="day-event2"  style="display:block;" date-day="'+ events[i].day +'" date-month="' + events[i].month +'" date-year="'+ events[i].year +'" data-number="'+ i +'"><span class="dost"><b class="active"></b></span><div><a class="arrow-left"></a><p>'+ events[i].description +'</p><p class="time-text">16:52</p></div></div>');


                    }
                    else
                    {
                    $('.list').append('<div class="day-event2"   date-day="'+ events[i].day +'" date-month="' + events[i].month +'" date-year="'+ events[i].year +'" data-number="'+ i +'"><span class="dost"><b class="active"></b></span><div><a class="arrow-left"></a><p>'+ events[i].description +'</p><p class="time-text">16:52</p></div></div>');

                    }
                }
                 calendar.startCalendar();
             },
             error: function(xhr, type){
              alert('Ajax error!')
              }
          })
       
    }
    else {

          // if not using ajax start calendar
          calendar.startCalendar();
        }

    },

      startCalendar: function() {
          var mon = '周一';
            var tue = '周二';
            var wed = '周三';
            var thur = '周四';
            var fri = '周五';
            var sat = '周六';
            var sund = '周日';

            /**
             * Get current date
             */
            var d = new Date();
            var strDate = yearNumber + "/" + (d.getMonth() + 1) + "/" + d.getDate();
            var yearNumber = (new Date).getFullYear();
            /**
             * Get current month and set as '.current-month' in title
             */
            var monthNumber = d.getMonth() + 1;

            function GetMonthName(monthNumber) {
                var months = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'];
                return months[monthNumber - 1];
            }
        setMonth(monthNumber, mon, tue, wed, thur, fri, sat, sund);

            function setMonth(monthNumber, mon, tue, wed, thur, fri, sat, sund) {
                $('.month').text(GetMonthName(monthNumber) + ' ' + yearNumber);
                $('.month').attr('data-month', monthNumber);
                printDateNumber(monthNumber, mon, tue, wed, thur, fri, sat, sund);
            }

                var oSlide = document.querySelector('.calendar2 table');
                // var oList = document.querySelector('.calendar header');
                var startPoint = 0;
                var startX = 0;
                var startY= 0;
                var translateX = 0;
                var translateY= 0;
                oSlide.addEventListener('touchstart',function(e){
                
                  startPoint = e.changedTouches[0].pageX;
                
                  startY=e.changedTouches[0].pageY;
                

                })

                oSlide.addEventListener('touchmove',function(e){
                    
                 translateX = e.changedTouches[0].pageX - startPoint;
                 translateY = e.changedTouches[0].pageY - startY;
                
                //   translateX = startX + dis;
                   // translateY=
                })
     
           oSlide.addEventListener('touchend',function(e){
                  
            if(Math.abs(translateX)> Math.abs(translateY))
            {
                if(startPoint.toFixed(2)==e.changedTouches[0].pageX.toFixed(2))
                    {
                            
                        return false;
                    }
                    else
                    {
                       
                    if(translateX>0)
                    {
                        var monthNumber = $('.month').attr('data-month');
                        if (monthNumber < 2) {
                        $('.month').attr('data-month', '13');
                        var monthNumber = $('.month').attr('data-month');
                        yearNumber = yearNumber - 1;
                    
                        setTimeout(setMonth(parseInt(monthNumber) - 1, mon, tue, wed, thur, fri, sat, sund),1000);
                        
                        } else {
                        
                         setMonth(parseInt(monthNumber) - 1, mon, tue, wed, thur, fri, sat, sund);
                        };
                        var myDate = new Date();
                        var date=(myDate.getMonth()+1)+"月"+myDate.getFullYear();
                        var day=myDate.getDate();
                        var year=myDate.getFullYear();
                        var month=myDate.getMonth()+1;
                        $('.day-event2').css('display','none');
                        if($('.calendar2 .month').text().replace(" ","")==date)
                        {
                          $('.day-event2[date-month="' + month + '"][date-year="' + year + '"][date-day="' + day + '"]').css('display','block');

                        }
                        // else
                        // {
                          
                        // }
                    }
                     else if(translateX<0)
                         {
                           
                            var monthNumber = $('.month').attr('data-month');
                            if (monthNumber > 11) {
                            $('.month').attr('data-month', '0');
                            var monthNumber = $('.month').attr('data-month');
                            yearNumber = yearNumber + 1;
                        
                            setMonth(parseInt(monthNumber) + 1, mon, tue, wed, thur, fri, sat, sund);
                            } else {
                                
                            setMonth(parseInt(monthNumber) + 1, mon, tue, wed, thur, fri, sat, sund);
                            };
                            var myDate = new Date();
                            var date=(myDate.getMonth()+1)+"月"+myDate.getFullYear();
                            var day=myDate.getDate();
                            var year=myDate.getFullYear();
                            var month=myDate.getMonth()+1;
                           $('.day-event2').css('display','none');
                
                            if($('.calendar2 .month').text().replace(" ","")==date)
                            {
                            $('.day-event2[date-month="' + month + '"][date-year="' + year + '"][date-day="' + day + '"]').css('display','block');

                            }
                        
                                    
                         }


                    }

            }
            else
            {
                return false;
            }
                    
         })

            function printDateNumber(monthNumber, mon, tue, wed, thur, fri, sat, sund) {

                $($('tbody.event-calendar2 tr')).each(function(index) {
                    $(this).empty();
                });

                $($('thead.head tr')).each(function(index) {
                    $(this).empty();
                });

                function getDaysInMonth(month, year) {
                    // Since no month has fewer than 28 days
                    var date = new Date(year, month, 1);
                    var days = [];
                    while (date.getMonth() === month) {
                        days.push(new Date(date));
                        date.setDate(date.getDate() + 1);
                    }
                    return days;
                }

                i = 0;

                setDaysInOrder(mon, tue, wed, thur, fri, sat, sund);

                function setDaysInOrder(mon, tue, wed, thur, fri, sat, sund) {
                    var monthDay = getDaysInMonth(monthNumber - 1, yearNumber)[0].toString().substring(0, 3);
                    if (monthDay === 'Mon') {
                        $('thead.head tr').append('<td><span class="event-wekday">' + mon + '</span></td><td><span class="event-wekday">' + tue + '</span></td><td><span class="event-wekday">' + wed + '</span></td><td><span class="event-wekday">' + thur + '</span></td><td><span class="event-wekday">' + fri + '</span></td><td><span class="event-wekday">' + sat + '</span></td><td><span class="event-wekday">' + sund + '</span></td>');
                    } else if (monthDay === 'Tue') {
                        $('thead.head tr').append('<td><span class="event-wekday">' + tue + '</span></td><td><span class="event-wekday">' + wed + '</span></td><td><span class="event-wekday">' + thur + '</span></td><td><span class="event-wekday">' + fri + '</span></td><td><span class="event-wekday">' + sat + '</span></td><td><span class="event-wekday">' + sund + '</span></td><td><span class="event-wekday">' + mon + '</span></td>');
                    } else if (monthDay === 'Wed') {
                        $('thead.head tr').append('<td><span class="event-wekday">' + wed + '</span></td><td><span class="event-wekday">' + thur + '</span></td><td><span class="event-wekday">' + fri + '</span></td><td><span class="event-wekday">' + sat + '</span></td><td><span class="event-wekday">' + sund + '</span></td><td><span class="event-wekday">' + mon + '</span></td><td><span class="event-wekday">' + tue + '</span></td>');
                    } else if (monthDay === 'Thu') {
                        $('thead.head tr').append('<td><span class="event-wekday">' + thur + '</span></td><td><span class="event-wekday">' + fri + '</span></td><td><span class="event-wekday">' + sat + '</span></td><td><span class="event-wekday">' + sund + '</span></td><td><span class="event-wekday">' + mon + '</span></td><td><span class="event-wekday">' + tue + '</span></td><td><span class="event-wekday">' + wed + '</span></td>');
                    } else if (monthDay === 'Fri') {
                        $('thead.head tr').append('<td><span class="event-wekday">' + fri + '</span></td><td><span class="event-wekday">' + sat + '</span></td><td><span class="event-wekday">' + sund + '</span></td><td><span class="event-wekday">' + mon + '</span></td><td><span class="event-wekday">' + tue + '</span></td><td><span class="event-wekday">' + wed + '</span></td><td><span class="event-wekday">' + thur + '</span></td>');
                    } else if (monthDay === 'Sat') {
                        $('thead.head tr').append('<td><span class="event-wekday">' + sat + '</span></td><td><span class="event-wekday">' + sund + '</span></td><td><span class="event-wekday">' + mon + '</span></td><td><span class="event-wekday">' + tue + '</span></td><td><span class="event-wekday">' + wed + '</span></td><td><span class="event-wekday">' + thur + '</span></td><td><span class="event-wekday">' + fri + '</span></td>');
                    } else if (monthDay === 'Sun') {
                        $('thead.head tr').append('<td><span class="event-wekday">' + sund + '</span></td><td><span class="event-wekday">' + mon + '</span></td><td><span class="event-wekday">' + tue + '</span></td><td><span class="event-wekday">' + wed + '</span></td><td><span class="event-wekday">' + thur + '</span></td><td><span class="event-wekday">' + fri + '</span></td><td><span class="event-wekday">' + sat + '</span></td>');
                    }
                };
                $(getDaysInMonth(monthNumber - 1, yearNumber)).each(function(index) {
                    var index = index + 1;
                    if (index < 8) {
                        $('tbody.event-calendar2 tr.row1').append('<td date-month="' + monthNumber + '" date-day="' + index + '" date-year="' + yearNumber + '"><span class="event-day">' + index + '</span></td>');
                    } else if (index < 15) {
                        $('tbody.event-calendar2 tr.row2').append('<td date-month="' + monthNumber + '" date-day="' + index + '" date-year="' + yearNumber + '"><span class="event-day">' + index + '</span></td>');
                    } else if (index < 22) {
                        $('tbody.event-calendar2 tr.row3').append('<td date-month="' + monthNumber + '" date-day="' + index + '" date-year="' + yearNumber + '"><span class="event-day">' + index + '</span></td>');
                    } else if (index < 29) {
                        $('tbody.event-calendar2 tr.row4').append('<td date-month="' + monthNumber + '" date-day="' + index + '" date-year="' + yearNumber + '"><span class="event-day">' + index + '</span></td>');
                    } else if (index < 32) {
                        $('tbody.event-calendar2 tr.row5').append('<td date-month="' + monthNumber + '" date-day="' + index + '" date-year="' + yearNumber + '"><span class="event-day">' + index + '</span></td>');
                    }
                    i++;
                });
                var date = new Date();
                var month = date.getMonth() + 1;
                var thisyear = new Date().getFullYear();
                setCurrentDay(month, thisyear);
                setEvent();
                displayEvent();
            }
                /**
             * Get current day and set as '.current-day'
             */
            function setCurrentDay(month, year) {
                var viewMonth = $('.month').attr('data-month');
                var eventYear = $('.event-days').attr('date-year');
                if (parseInt(year) === yearNumber) {
                    if (parseInt(month) === parseInt(viewMonth)) {
                        $('tbody.event-calendar2 td[date-day="' + d.getDate() + '"] span').addClass('current-day');
                    }
                }
            };

            /*$('tbody td span').on('click', function(e) {
                    alert('11');
                if ($(this).hasClass('event')) {
                    $('tbody.event-calendar2 td span').removeClass('active');
                    $(this).addClass('active');
                } else {
                    $('tbody.event-calendar2 td span').removeClass('active');
                    $(this).addClass('active');
    //                debugger;
    //                $('.event-calendar tr td[class="active"]').text();获取日
    //                $('.month').text();获取年月
                };
            });
    */
                /**
             * Add '.event' class to all days that has an event
             */
            function setEvent() {
                $('.day-event2').each(function(i) {
                    var eventMonth = $(this).attr('date-month');
                    var eventDay = $(this).attr('date-day');
                    var eventYear = $(this).attr('date-year');
                    var eventClass = $(this).attr('event-class');
                    if (eventClass === undefined) eventClass = 'event';
                    else eventClass = 'event ' + eventClass;

                      var date = new Date();
                        var month = date.getMonth() + 1;
                        var day=date.getDate();
                            if (parseInt(eventYear) === yearNumber) {
                                if(eventMonth==month&& eventDay==day)
                                {
                                 $('tbody.event-calendar2 tr td[date-month="' + eventMonth + '"][date-day="' + eventDay + '"] span').addClass();
                                }
                                else
                                {
                                $('tbody.event-calendar2 tr td[date-month="' + eventMonth + '"][date-day="' + eventDay + '"] span').addClass(eventClass);
                                }
                                
                            }

                });
            };

           /**
             * Get current day on click in calendar
             * and find day-event to display
             */
            function displayEvent() {
                $('tbody.event-calendar2 td span').on('click', function(e) {
                     $('.day-event2').css('display','none');
                    var monthEvent = $(this).parent().attr('date-month');;
                    var dayEvent = $(this).text();
                    var yearEvent = $(this).parent().attr('date-year');
                     $('.day-event2[date-month="' + monthEvent + '"][date-year="' + yearEvent + '"][date-day="' + dayEvent + '"]').css('display','block');
                     $('tbody.event-calendar2 td span').removeClass('active');
                    $(this).addClass('active');
                });
            };





      }
    }

    $(document).ready(function() {
        calendar.init('ajax');
    });

  • 相关阅读:
    javaScript 中的异步编程
    javaScript内存泄漏
    javaScript| 对象的拷贝
    javaScript 数组的拷贝
    javaScript 去除数组中的重复值
    解决js key中的时间间隔
    js未命题(杂记)
    js中斐波拉切数的三种写法;
    js闭包的七中形式
    Javascript学习日志(三):闭包
  • 原文地址:https://www.cnblogs.com/xiaoliu12/p/6085772.html
Copyright © 2011-2022 走看看