亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

純javascript制作日歷控件

2019-11-20 12:02:00
字體:
來源:轉載
供稿:網友

以前要用到日歷控件都是直接從網上下載一套源碼來使用,心里一直有個梗,就是想自己動手寫一個日歷控件,最近剛好來了興趣,時間上也允許,于是自己摸索寫了一個,功能還算完善,界面就湊合了??赡茏钪档谜f的一點就是讓input控件內部右邊顯示一個按鈕,我是直接給input加了個背景,然后把input的邊框去掉實現的。

這個是最初版的,再往后打算做出純javascript版的,再往后打算用JQuery做一套。

<!doctype html><html><head><meta charset="utf-8"><title>日歷控件</title><style>#date_text {  background-image: url(images/input.png);  background-repeat:no-repeat;  width: 198px;  height: 27px;  border:none;  padding-left:5px;  cursor:pointer;}#cal_body {  width: 198px;  height: auto;  overflow:hidden;  border: solid 1px #CCCCCC;  display: none;  position:absolute;  z-index:10;}.line {  width:100%;  height:26px;  float:left;  background-color:#0FF;  font-size:14px;}.cube {  float:left;  width:26px;  height:26px;  line-height:26px;  text-align:center;  margin-left:2px;  margin-bottom:2px;}.btn {  float:left;  background-color:#CCC;  margin-left:10px;  width:20px;  height:20px;  text-align:center;  line-height:20px;  border-radius:3px;  border:solid 1px;  margin-top:2px;  cursor:pointer;}.year_month {  float:left;  margin-left:10px;  width:90px;  height:19px;  text-align:center;  line-height:19px;  border-radius:6px;}.end_tag {  height:26px;  line-height:26px;  margin-left:10px;}</style><script>Date.prototype.toFormatString = function(){  var result = this.getFullYear() + "-" + (this.getMonth() + 1) + "-" + this.getDate();  return result;};  var today = new Date();var month_big = new Array("1","3","5","7","8","10","12"); //包含所有大月的數組var month_small = new Array("4","6","9","11"); //包含所有小月的數組 //判斷數組array中是否包含元素obj的函數,包含則返回true,不包含則返回falsefunction array_contain(array, obj){  for (var i = 0; i < array.length; i++){    if (array[i] == obj)      return true;  }  return false;}//判斷年份year是否為閏年,是閏年則返回true,否則返回falsefunction isLeapYear(year){  var a = year % 4;  var b = year % 100;  var c = year % 400;  if( ( (a == 0) && (b != 0) ) || (c == 0) ){    return true;  }  return false;}function hideCalendar(){  var calbody = document.getElementById("cal_body");  cal_body.style.display = "none";}function showCalendar(){    var calbody = document.getElementById("cal_body");  var style = getDefaultStyle(calbody,"display");  if(style == "none")    cal_body.style.display = "block";  if(style == "block")    cal_body.style.display = "none";    var date_text = document.getElementById("date_text");  var val = date_text.value;  init(val);}function init(val){    clearCube();    var temp_date;  var date_text = document.getElementById("date_text");  if(val == ""){    temp_date = today;    date_text.value = today.toFormatString();  }  else{    temp_date = new Date(val);      }      var year = temp_date.getFullYear();  var month = temp_date.getMonth() + 1;  var date = temp_date.getDate();  temp_date.setDate(1);    var start = temp_date.getDay() + 7;  var end;    if(array_contain(month_big, month)){    end = start + 31;  }  else if(array_contain(month_small, month)){    end = start + 30;  }  else{    if(isLeapYear(year)){      end = start + 29;    }    else{      end = start + 28;    }  }    for(var i = start; i < end; i++){    var cube = document.getElementsByClassName("cube").item(i);    cube.innerHTML = i - start + 1;        cube.style.cursor = "pointer";    cube.onmouseover = function(){      this.style.backgroundColor = '#0FF';    }    if(date == (i - start + 1))      cube.style.backgroundColor = '#0FF';    else{      cube.onmouseout = function(){        this.style.backgroundColor = '';      }    }    cube.onclick = function(){      date_text.value = year + "-" + month + "-" + this.innerHTML;            cal_body.style.display = "none";        }  }    document.getElementById("text_year").value = year;  document.getElementById("text_month").value = month;}function clearCube(){  for(var i=7; i < 49; i++){    var cube = document.getElementsByClassName("cube").item(i);    cube.innerHTML = "";    cube.style.backgroundColor = "";  }}function yearDown(){  if(isValidated()){    var old_year = parseInt(document.getElementById("text_year").value);    if(old_year > 1960){      var year = old_year - 1;      var month = parseInt(document.getElementById("text_month").value);      var val = year + "-" + month + "-" + 1;      init(val);    }  }}function yearUp(){  if(isValidated()){    var old_year = parseInt(document.getElementById("text_year").value);    if(old_year < 2050){      var year = old_year + 1;      var month = parseInt(document.getElementById("text_month").value);      var val = year + "-" + month + "-" + 1;      init(val);    }  }}function monthDown(){  if(isValidated()){    var old_month = parseInt(document.getElementById("text_month").value)    if(old_month > 1){      var year = parseInt(document.getElementById("text_year").value);      var month = old_month - 1;      var val = year + "-" + month + "-" + 1;      init(val);    }    else {      var year = parseInt(document.getElementById("text_year").value) - 1;      var month = 12;      var val = year + "-" + month + "-" + 1;      init(val);    }  }    }function monthUp(){  if(isValidated()){    var old_month = parseInt(document.getElementById("text_month").value)    if(old_month < 12){      var year = parseInt(document.getElementById("text_year").value);      var month = parseInt(document.getElementById("text_month").value) + 1;      var val = year + "-" + month + "-" + 1;      init(val);    }    else {      var year = parseInt(document.getElementById("text_year").value) + 1;      var month = 1;      var val = year + "-" + month + "-" + 1;      init(val);    }  }}function isValidated(){  var year = document.getElementById("text_year").value;  var month = document.getElementById("text_month").value;  if(isNaN(year) || isNaN(month)){    alert("請輸入正確的年份/月份");    return false;  }  else{    if(year%1 != 0 || month%1 != 0){      alert("請輸入正確的年份/月份");      return false;    }    else{      year = parseInt(year);      if(year < 1960 || year > 2050){        alert("請輸入1960~2050之間的年份!");        return false;      }      else if(month < 1 || month >12){        alert("請輸入正確的月份!");        return false;      }      else{        return true;      }    }  }}function changed(){  if(isValidated()){    var year = document.getElementById("text_year").value;    var month = document.getElementById("text_month").value;    var val = year + "-" + month + "-" + 1;    init(val);  }}function getDefaultStyle(obj,attribute){    return obj.currentStyle?obj.currentStyle[attribute]:document.defaultView.getComputedStyle(obj,false)[attribute];}</script></head><body><div id="container"><div id="input_bg"><input id="date_text" type="text" readonly onClick="showCalendar()" /></div><div id="cal_body">  <div class="line"><div class="btn" id="year_down" onClick="yearDown()">-</div><input class="year_month" id="text_year" value="2015" onChange="changed()"><div class="btn" id="year_up" onClick="yearUp()">+</div><span class="end_tag">年</span></div>  <div class="line"><div class="btn" id="month_down" onClick="monthDown()">-</div><input class="year_month" id="text_month" value="5" onChange="changed()"><div class="btn" id="month_up" onClick="monthUp()">+</div><span class="end_tag">月</span></div>  <div class="cube">日</div>  <div class="cube">一</div>  <div class="cube">二</div>  <div class="cube">三</div>  <div class="cube">四</div>  <div class="cube">五</div>  <div class="cube">六</div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div>  <div class="cube"></div></div><div></body></html>

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美老女人在线视频| 欧美成人一区在线| 日韩影视在线观看| 中文字幕不卡av| 中文字幕亚洲无线码在线一区| 国外成人性视频| 午夜免费日韩视频| 欧美黑人狂野猛交老妇| 国产成人av在线播放| 亚洲国产精品久久久| 国产99久久精品一区二区永久免费| 国产精品视频公开费视频| 日韩午夜在线视频| 欧美午夜xxx| 日本成人精品在线| 91精品综合久久久久久五月天| 国产91色在线播放| 日韩一区二区三区国产| 国产999视频| 秋霞午夜一区二区| 2019av中文字幕| 国产精品永久免费| 国产成人精品久久久| 精品国产91久久久| 日韩av免费观影| 91精品啪aⅴ在线观看国产| 国产精品美女免费| 国产精品美女呻吟| 日本19禁啪啪免费观看www| 亚洲精品国产精品乱码不99按摩| 91国内免费在线视频| 久久艳片www.17c.com| 亚州欧美日韩中文视频| 成人免费激情视频| 日韩欧美在线免费| 国产欧美最新羞羞视频在线观看| 国产丝袜一区视频在线观看| 色噜噜国产精品视频一区二区| 91免费人成网站在线观看18| 欧美国产日韩在线| 最近2019免费中文字幕视频三| 亚洲午夜未满十八勿入免费观看全集| 欧美色播在线播放| 午夜精品视频网站| 国产精品扒开腿做| 国产成人高清激情视频在线观看| 欧美国产高跟鞋裸体秀xxxhd| 中文字幕欧美亚洲| 日韩视频精品在线| 国产精品老牛影院在线观看| 亚洲国产欧美日韩精品| 欧美日韩成人黄色| 国产成+人+综合+亚洲欧美丁香花| 欧洲亚洲在线视频| 久久中文字幕一区| 亚洲人成网站777色婷婷| 亚洲欧美精品一区二区| 久久成人精品一区二区三区| 国产精品久久激情| 国产精品免费网站| 日本午夜在线亚洲.国产| 91精品国产综合久久香蕉最新版| 日韩欧美在线看| 国产在线拍偷自揄拍精品| 国产亚洲aⅴaaaaaa毛片| 欧美视频第一页| 俺也去精品视频在线观看| 亚洲综合色激情五月| 岛国av午夜精品| 久久久天堂国产精品女人| 亚洲xxxx视频| 亚洲欧美视频在线| 日韩精品999| 91久久精品国产91久久| 久久精品99国产精品酒店日本| 最新国产成人av网站网址麻豆| 欧美亚洲激情视频| 久久中文精品视频| 精品在线观看国产| 国产日韩欧美中文在线播放| 91精品国产91久久久久| 亚洲欧美日韩久久久久久| 亚洲第一视频网站| 一区二区亚洲欧洲国产日韩| 97在线精品国自产拍中文| 欧美国产精品va在线观看| 亚洲黄页网在线观看| 亚洲色无码播放| 亚洲v日韩v综合v精品v| 久久久成人的性感天堂| 亚洲aⅴ日韩av电影在线观看| 精品高清美女精品国产区| 中文字幕亚洲欧美日韩高清| 亚洲一区中文字幕在线观看| 亚洲精品国产精品国自产观看浪潮| 国产精品一二三视频| 2020国产精品视频| 国产一区二区三区视频免费| 久久影院免费观看| 亚洲国产天堂久久国产91| 色偷偷综合社区| 国产精品视频成人| 日韩暖暖在线视频| 久久久久久12| 欧美一性一乱一交一视频| 国产综合久久久久久| 国产国产精品人在线视| 国产福利视频一区| 中文欧美在线视频| 黑人狂躁日本妞一区二区三区| 91av在线视频观看| 国产日本欧美一区二区三区在线| 伊人久久综合97精品| 亚洲欧美综合区自拍另类| 国产欧美精品va在线观看| 欧美日韩性视频在线| 国产日韩精品视频| 成人av资源在线播放| 色婷婷久久av| 欧美成人网在线| 日韩av中文字幕在线| 国产精品中文字幕在线| 亚洲欧美日韩一区二区三区在线| 4k岛国日韩精品**专区| 成人黄色av免费在线观看| 日韩精品免费观看| 亚洲自拍小视频免费观看| 一区二区三区国产视频| 亚洲激情在线观看视频免费| 成人激情视频在线| 91精品国产91久久久| 亚洲欧美日韩国产中文| 亚洲国产高清福利视频| 午夜精品国产精品大乳美女| 欧美一级免费视频| 中文字幕视频在线免费欧美日韩综合在线看| 久久99精品久久久久久噜噜| 日韩精品一区二区视频| 亚洲欧美中文另类| 欧美激情亚洲综合一区| 国产精品678| 国产在线日韩在线| 欧美壮男野外gaytube| 国产精品美女午夜av| 日韩精品高清在线| 欧美成人精品h版在线观看| 色综合五月天导航| 国产91亚洲精品| 亚洲小视频在线| 最近2019中文免费高清视频观看www99| 97在线精品国自产拍中文| 日韩精品极品视频免费观看| 欧美成人h版在线观看| 4p变态网欧美系列| 欧美性20hd另类| 91精品国产色综合久久不卡98口| 高清欧美一区二区三区| 亚洲老头同性xxxxx| 国模私拍一区二区三区| 狠狠久久亚洲欧美专区| 亚州欧美日韩中文视频| 亚洲一区二区三区成人在线视频精品| 亚洲精品动漫100p| 亚洲美女av在线播放|