欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于jQuery日歷插件制作日歷

 更新時間:2016年03月11日 12:02:43   作者:weapon-x  
這篇文章主要介紹了基于jQuery日歷插件制作日歷的相關資料,需要的朋友可以參考下

來看下最終效果圖吧:

是長得丑了一點,不要吐槽我-。-

首先來說說這個日歷主要的制作邏輯吧:

·一個月份最多有31天,需要一個7X6的表格去裝載

·如果知道了某個月份1號是星期幾,這個月份有多少天,一個循環(huán)就可以顯示某個月的日歷了吧(眼睛都放光了*.*)

·加上一些控件讓用戶可以方便操作吧(比如可以輸入年份、月份,可以點擊選擇年份、月份)

新建一個html文件,html結構:

<div class="container">
 <input type="text" value="" id="cal-input"/>
 <div class="cal-box">
 <table>
  <thead>
  <tr>
   <td class="sun">日</td>
   <td>一</td>
   <td>二</td>
   <td>三</td>
   <td>四</td>
   <td>五</td>
   <td class="sta">六</td>
  </tr>
  </thead>
  <tbody>
  <tr>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
  </tr>
  <tr>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
  </tr>
  <tr>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
  </tr>
  <tr>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
  </tr>
  <tr>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
  </tr>
  <tr>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
  </tr>
  </tbody>
 </table>
 </div>
</div>

再加點樣式進去,打開瀏覽器看看效果:

thead td,tbody td{
  width: 20px;
  height: 20px;<br><span class="styles-clipboard-only">        <span class="webkit-css-property">text-align: <span class="expand-element"><span class="value">center;</span></span></span></span>
 }
 thead td.sun,thead td.sta{
  color: #eec877;
 }
 tbody td{
  border: 1px solid #eee;
 }


 

看起來還不錯,但是這是一個插件,要寫這么多html的代碼是不合理的,應該是在這個插件內部動態(tài)插入的,這樣寫也是為了直觀演示。

要開始寫JS代碼了,現(xiàn)在要得知某月的1號是星期幾,方便去遍歷顯示某月的日歷出來,這里用到了蔡勒公式

PS:簡單解釋一下,蔡勒公式:var week = y + parseInt(y/4) + parseInt(c/4) - 2*c + parseInt(26*(m+1)/10) + d - 1;

c是年份的前兩位,y是年份的后兩份(2016年,c是20,y就是16),m是月份,d是日期,把week%7后得出的結果就是星期幾
但是1,2月要當成上一年的13,14月進行計算,比如2016.2.3,就要換算成2015.14.3來使用蔡勒公式

week是正數(shù)和負數(shù)時求模是不一樣的,負數(shù)時要 (week%7+7)%7,正數(shù)時直接求模 week%7,

還有得知道這個月份有多少天,1、3、5、7、8、10、12月是31天,4、6、9、11月是30天,2月分閏年和平年,平年是28天,閏年是29天,閏年是能被4整除但不能被100整除的,好了有了些前提下,還是能很快寫出JS的

$(function(){
 var $td = $('tbody').find('td');
 
 var date = new Date(),
  year = date.getFullYear(),
  month = date.getMonth() + 1,
  day = date.getDate(),days;
 
 
 function initCal(yy,mm,dd){
  if(mm ==2 && yy%4 == 0 && yy%100 !==0 ){
  days = 28;
  }else if(mm == 1 || mm == 3 || mm == 5 || mm == 7 || mm == 8 || mm == 10 || mm == 12){
  days = 31;
  }else if(mm==4 || mm==6 || mm==9 || mm==11 ){
  days = 30;
  }else{
  days = 29;
  }
 
  var m = mm < 3 ? (mm == 1 ? 13 : 14): mm;
  yy = m > 12 ? yy - 1 : yy;
  var c = Number(yy.toString().substring(0,2)),
   y = Number(yy.toString().substring(2,4)),
   d = 1;
  //蔡勒公式
  var week = y + parseInt(y/4) + parseInt(c/4) - 2*c + parseInt(26*(m+1)/10) + d - 1;
 
  week = week < 0 ? (week%7+7)%7 : week%7;
 
  for(var i=0 ;i<42;i++){
  $td.eq(i).text('');    //清空原來的text文本
  }
 
  for(var i = 0;i < days; i++){
  $td.eq( week % 7 +i).text(i+1);    
  }
 }
 
 initCal(year,month,day);
 })

  再打開瀏覽器看看,現(xiàn)在的日歷是長這樣

打開手機日歷看一看,現(xiàn)在是16年3月,嗯,長得一毛一樣(得意臉)

現(xiàn)在要添加一些控件進去,兩個輸入框和四個按鍵,按鍵是使用了iconfont,html代碼如下:

<div class="container">
 <input type="text" value="" id="cal-input"/>
 <div class="cal-box">
 <div class="cal-control-box">
  <div class="wif iw-bofangqixiayiqu left"></div>
  <div class="wif iw-iconfont-bofang left"></div>
  <input type="" value=""/>
  <span>年</span>
  <input type="" value=""/>
  <div class="wif iw-iconfont-bofang right"></div>
  <div class="wif iw-bofangqixiayiqu right"></div>
 </div>
 <table>
  <thead>
  <tr>
   <td class="sun">日</td>
   <td>一</td>
   <td>二</td>
   <td>三</td>
   <td>四</td>
   <td>五</td>
   <td class="sta">六</td>
  </tr>
  </thead>
  <tbody>
  <tr>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
  </tr>
  <tr>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
  </tr>
  <tr>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
  </tr>
  <tr>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
  </tr>
  <tr>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
  </tr>
  <tr>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
  </tr>
  </tbody>
 </table>
 </div>
</div>

現(xiàn)在的日歷是長這樣子了

  

現(xiàn)在來給按鍵們都綁上點擊事件,輸入框綁上change事件

//更改月份按鈕
 $(document).on("click",".iw-iconfont-bofang",function(){
  if($(this).hasClass("left")){
  //判斷加還是減
  if(month == 1 ){
   month = 12;
   year--;
  }else{
   month--;
  }
  }else{
  if(month == 12){
   month = 1;
   year ++;
  }else{
   month ++;
  }
  }
  initCal(year,month,day);
 })
 
 //更改年份
 $(document).on("click",".iw-bofangqixiayiqu",function(){
  if($(this).hasClass("left")){
  year--;
  }else{
  year++;
  }
  initCal(year,month,day);
 })
 //年份輸入
 $(document).on("change","input.cal-year",function(){
  year = $(this).val();
  initCal(year,month,day);
 })
 
 //月份輸入
 $(document).on("change","input.cal-month",function(){
  month = $(this).val();
  initCal(year,month,day);
 })
  

順便在initCal()函數(shù)里面要把年份和月份的值用JQ的val()方法,放進input框里面就ok啦

結束語:這里呢并沒有寫成一個插件的形式,但是把這個日歷的實現(xiàn)主要思路寫好了,最近也是忙著寫畢業(yè)論文,還有挺多東西想寫下來分享的,總是感覺時間不夠用,下次寫一下怎么將這個日歷寫成一個chrome插件,就是下面這個

希望本文所述對jquery程序設計有所幫助。

相關文章

  • jquery.masonry瀑布流效果

    jquery.masonry瀑布流效果

    這篇文章主要為大家詳細介紹了jquery.masonry瀑布流效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • jquery png 透明解決方案(推薦)

    jquery png 透明解決方案(推薦)

    這個插件主要用于解決IE5.5與IE6.0下面的png圖片無法透明的解決方法,如果您的網站使用了png圖片而且訪客很大一部分是IE7之前的版本,可以使用這個。
    2010-08-08
  • jQuery中:selected選擇器用法實例

    jQuery中:selected選擇器用法實例

    這篇文章主要介紹了jQuery中:selected選擇器用法,實例分析了:selected選擇器的功能、定義及匹配被選擇的<option>元素的使用技巧,需要的朋友可以參考下
    2015-01-01
  • JQuery動態(tài)給table添加、刪除行 改進版

    JQuery動態(tài)給table添加、刪除行 改進版

    最近需要使用JQuery動態(tài)操作table,自己整理了一下,可以添加新行,刪除選中的一行或多行,簡單代碼如下
    2011-01-01
  • jQuery事件綁定方法學習總結(推薦)

    jQuery事件綁定方法學習總結(推薦)

    下面小編就為大家?guī)硪黄猨Query事件綁定方法學習總結(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • bootstrap table 服務器端分頁例子分享

    bootstrap table 服務器端分頁例子分享

    這篇文章主要介紹了bootstrap table 服務器端分頁例子分享,需要的朋友可以參考下
    2015-02-02
  • 【經典源碼收藏】基于jQuery的項目常見函數(shù)封裝集合

    【經典源碼收藏】基于jQuery的項目常見函數(shù)封裝集合

    這篇文章主要介紹了基于jQuery的項目常見函數(shù)封裝集合,總結分析 jQuery常見功能的函數(shù)封裝,便于在項目開發(fā)中直接使用,需要的朋友可以參考下
    2016-06-06
  • jquery拖動改變div大小

    jquery拖動改變div大小

    這篇文章主要為大家詳細介紹了jquery拖動改變div大小的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • jquery.validate的使用說明介紹

    jquery.validate的使用說明介紹

    本文是對jquery.validate的使用進行了詳細的總結介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • JQuery Ajax WebService傳遞參數(shù)的簡單實例

    JQuery Ajax WebService傳遞參數(shù)的簡單實例

    下面小編就為大家?guī)硪黄狫Query Ajax WebService傳遞參數(shù)的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11

最新評論