茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    一起學(xué)寫js Calender日歷控件
    來源:易賢網(wǎng) 閱讀:1511 次 日期:2016-07-08 11:04:30
    溫馨提示:易賢網(wǎng)小編為您整理了“一起學(xué)寫js Calender日歷控件”,方便廣大網(wǎng)友查閱!

    這篇文章主要和大家一起學(xué)寫js Calender控件,自己動手編寫了一個簡易日歷控件,感興趣的小伙伴們可以參考一下

    最近看了一下關(guān)于js日期的一些函數(shù),突然想到了日歷控件,于是試著寫了一個,作為后臺程序員的我水平有限,大家抱著學(xué)習(xí)的態(tài)度看看我寫的這個例子吧,一起學(xué)習(xí)進(jìn)步!

    首先一個常用的日期函數(shù):

    Date(year,month,day)

    var   date=new  Date();

    獲取年份

    var   year=this.date.getFullYear();

    獲取月份,這里是月索引所以要+1

    var   month=this.date.getMonth()+1;

    獲取當(dāng)天是幾號

    var   day=this.date.getDate();

    獲取當(dāng)天是周幾,返回0.周日   1.周一  2.周二  3.周三  4.周四  5.周五  6.周六

    var   week=this.date.getDay();

    獲取當(dāng)月一號是周幾      

    var   getWeekDay=function(year,month,day){

         var date=new Date(year,month,day);

         return date.getDay();

         }

    var  weekstart= getWeekDay(this.year, this.month-1, 1)

    獲取當(dāng)月的天數(shù)

    var getMonthDays=function(year,month){

          var date=new Date(year,month,0);

          return date.getDate();

        }

    var  monthdays= this.getMonthDays(this.year,this.month);

     好了,我們用到的參數(shù)就這么多,后面其實就是關(guān)于日期對應(yīng)周幾的一些操作和判斷,動態(tài)的拼接標(biāo)簽,下面就直接把我寫的例子發(fā)出來:

    效果圖:

    名單

    <html>  

    <meta http-equiv="content-type" content="text/html;charset=utf-8">

    <head>

      <style type="text/css">

    td{ text-align: center;}

      </style>

      <script type="text/javascript">

    window.onload=function(){

      var  Calender=function(){

        this.Init.apply(this,arguments);

      }

      Calender.prototype={

        Init:function(container,options){

          this.date=new Date();

          this.year=this.date.getFullYear();

          this.month=this.date.getMonth()+1;

          this.day=this.date.getDate();

          this.week=this.date.getDay();

          this.weekstart=this.getWeekDay(this.year, this.month-1, 1);

          this.monthdays= this.getMonthDays(this.year,this.month);

          this.containerDiv=document.getElementById(container);

          this.options=options!=null?options:{

            border:'1px solid green',

            width:'400px',

            height:'200px',

            backgroundColor:'lightgrey',

            fontColor:'blue'

          }

        },

        getMonthDays:function(year,month){

          var date=new Date(year,month,0);

          return date.getDate();

        },

        getWeekDay:function(year,month,day){

          var date=new Date(year,month,day);

          return date.getDay();

        },

        View:function(){

          var tablestr='<table>';

           tablestr+='<tr><td colspan="3"></td><td>年:'+this.year+'</td><td colspan="3">月:'+this.month+'</td></tr>';

          tablestr+='<tr><td width="14%">日</td><td width="14%">一</td><td width="14%">二</td><td width="14%">三</td><td width="14%">四</td><td width="14%">五</td><td width="14%">六</td></tr>';

          var index=1;

          //判斷每月的第一天在哪個位置

          var style='';

          if(this.weekstart<7)

          {

            tablestr+='<tr>';

             for (var i = 0; i <this.weekstart; i++) {

               tablestr+='<td></td>';

             };

             for (var i = 0; i < 7-this.weekstart; i++) {

              style=this.day==(i+1)?"background-Color:green;":"";

               index++;

               tablestr+='<td style="'+style+'" val='+(this.year+'-'+this.month+'-'+(i+1))+'>'+(i+1)+'</td>';

             };

            tablestr+='</tr>';

          }

          ///剩余天數(shù)對應(yīng)的位置

          //判斷整數(shù)行并且對應(yīng)相應(yīng)的位置

          var remaindays=this.monthdays-(7-this.weekstart);

          var row=Math.floor(remaindays%7==0?remaindays/7:((remaindays/7)+1)) ;

          var  count=Math.floor(remaindays/7);

          for (var i = 0; i < count; i++) {

             tablestr+='<tr>';

             for (var k = 0; k < 7; k++) {

               style=this.day==(index+k)?"background-Color:green;":"";

               tablestr+='<td style="'+style+'" val='+(this.year+'-'+this.month+'-'+(index+k))+'>';

               tablestr+=index+k;

               tablestr+='</td>';

             };

             tablestr+='</tr>';

             index+=7;

          };

          //最后剩余的天數(shù)對應(yīng)的位置(不能填充一周的那幾天)

          var remaincols=this.monthdays-(index-1);

          tablestr+='<tr>';

          for (var i = 0; i < remaincols; i++) {

            style=this.day==index?"background-Color:green;":"";

            tablestr+='<td style="'+style+'" val='+(this.year+'-'+this.month+'-'+(index))+'>';

            tablestr+=index;

            tablestr+='</td>';

            index++;

          };

          tablestr+='</tr>';

          tablestr+='</table>';

          return tablestr;

        },

        Render:function(){

          var calenderDiv=document.createElement('div');

          calenderDiv.style.border=this.options.border;

          calenderDiv.style.width=this.options.width;

          calenderDiv.style.height=this.options.height;

          calenderDiv.style.cursor='pointer';

          calenderDiv.style.backgroundColor=this.options.backgroundColor;

          // calenderDiv.style.color=this.options.fontColor;

          calenderDiv.style.color='red' ;

          calenderDiv.onclick=function(e){

            var evt=e||window.event;

            var  target=evt.srcElement||evt.target;

            if(target&&target.getAttribute('val'))

            {

              alert(target.getAttribute('val'));

            }

          }

          var tablestr=this.View();

          this.tablestr=tablestr;

          calenderDiv.innerHTML=tablestr;

          var div=document.createElement('div');

          div.style.width='auto';

          div.style.height='auto';

           div.appendChild(calenderDiv);

           ///翻頁div

          var pagerDiv=document.createElement('div');

          pagerDiv.style.width='auto';

          pagerDiv.style.height='auto';

            var that=this;

            ///重新設(shè)置參數(shù)

          var  resetPara=function(year,month,day){

              that.date=new Date(year,month,day);

              that.year=that.date.getFullYear();

              that.month=that.date.getMonth()+1;

              that.day=that.date.getDate();

              that.week=that.date.getDay();

              that.weekstart=that.getWeekDay(that.year, that.month-1, 1);

              that.monthdays= that.getMonthDays(that.year,that.month);

          }

          //上一頁

          var preBtn=document.createElement('input');

           preBtn.type='button';

           preBtn.value='<';

           preBtn.onclick=function(){

               that.containerDiv.removeChild(div);

               resetPara(that.year,that.month-2,that.day);

               that.Render();

           }

           //下一頁

           var nextBtn=document.createElement('input');

           nextBtn.type='button';

           nextBtn.value='>';

          

           nextBtn.onclick=function(){

               that.containerDiv.removeChild(div);

               resetPara(that.year,that.month,that.day);

               that.Render();

           }

           pagerDiv.appendChild(preBtn);

           pagerDiv.appendChild(nextBtn);

           div.appendChild(pagerDiv);

           var dropDiv=document.createElement('div');

           var  dropdivstr='';

           //選擇年份

           dropdivstr+='<select id="ddlYear">';

           for (var i = 1900; i <= 2100; i++) {

            dropdivstr+= 

            i==that.year

            ?'<option value="'+i+'" selected="true">'+i+'</option>'

            : '<option value="'+i+'">'+i+'</option>';

           };

           dropdivstr+='</select>';

          //選擇月份

          dropdivstr+='<select id="ddlMonth">';

           for (var i = 1; i <= 12; i++) {

            dropdivstr+=

            i==that.month

            ?'<option value="'+i+'" selected="true">'+i+'</option>'

            : '<option value="'+i+'">'+i+'</option>';

           };

           dropdivstr+='</select>';

           dropDiv.innerHTML=dropdivstr;

           div.appendChild(dropDiv);

          that.containerDiv.appendChild(div);

           ///綁定選擇年份和月份的事件

           var ddlChange=function(){

               var ddlYear=document.getElementById('ddlYear');

              var ddlMonth=document.getElementById('ddlMonth');

              var  yearIndex=ddlYear.selectedIndex;

              var year=ddlYear.options[yearIndex].value;

              var  monthIndex=ddlMonth.selectedIndex;

              var month=ddlMonth.options[monthIndex].value;

              that.containerDiv.removeChild(div);

              resetPara(year,month-1,that.day);

              that.Render();

           }

          ddlYear.onchange=function(){

             ddlChange();

          }

           ddlMonth.onchange=function(){

             ddlChange();

          }

        }

      }

      var  calender=new Calender('dvTest',{

            border:'1px solid green',

            width:'400px',

            height:'200px',

            backgroundColor:''

            }

            );

      calender.Render();

    }

      </script>

    </head>

    <body>

     <div id="dvTest"></div>

    </body>

    </html>

    代碼重新做了改動,將視圖的table換為了div,是為了解決IE的tableinnerHTML的只讀問題。另外加了options是為了可配置性。

    上面代碼有簡單說明,功能是最基礎(chǔ)的,如果更深入的做可以進(jìn)行擴(kuò)展,希望這篇文章可以給大家一些啟發(fā)。

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機網(wǎng)站地址:一起學(xué)寫js Calender日歷控件
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報班

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)