中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

原生js開發的日歷插件

發布時間:2020-09-08 21:27:14 來源:腳本之家 閱讀:124 作者:gaoxiaosong1113 欄目:web開發

效果如下所示:

原生js開發的日歷插件

代碼如下:

<style type="text/css">
 * {
 margin: 0;
 padding: 0;
 }
 ul, li {
 list-style: none;
 }
 #week {
 width: 350px;
 height: 350px;
 border: 1px solid #ccc;
 }
 #week h7 {
 font-size: 20px;
 overflow: hidden;
 height: 40px;
 line-height: 40px;
 }
 #week h7 div {
 float: left;
 width: 250px;
 text-align: center;
 }
 #week .prev {
 float: left;
 font-size: 12px;
 width: 50px;
 cursor: pointer;
 }
 #week .next {
 float: right;
 font-size: 12px;
 width: 50px;
 cursor: pointer;
 }
 #week p span {
 width: 50px;
 float: left;
 text-align: center;
 height: 30px;
 line-height: 30px;
 }
 #week p {
 background: #ccc;
 overflow: hidden;
 height: 30px;
 }
 #week ul {
 margin-top: 10px;
 }
 #week ul li {
 width: 50px;
 float: left;
 text-align: center;
 height: 30px;
 cursor: pointer;
 }
 </style>
<input type="text" id="ele" onfocus="currentWeek(this)"/>
<script>
 function currentWeek(ele) {
 var obj = offset(ele);
 var x = obj.left;
 var y = obj.top + ele.offsetHeight + 1;
 //創建日歷界面
 if (!document.getElementById('week')) {
 var oDiv = document.createElement('div');
 document.body.appendChild(oDiv);
 oDiv.id = 'week';
 oDiv.style.top = y + "px";
 oDiv.style.left = x + "px";
 //創建日歷title
 var h7 = document.createElement('h7');
 oDiv.appendChild(h7);
 var prev = document.createElement('div');
 h7.appendChild(prev);
 prev.className = 'prev';
 prev.innerHTML = '上個月';
 var content = document.createElement('div');
 content.className = "content";
 h7.appendChild(content);
 var next = document.createElement('div');
 h7.appendChild(next);
 next.className = 'next';
 next.innerHTML = '下個月';
 //創建星期日到星期六的文字行
 var oPs = document.createElement('p');
 oPs.className = "rlTitle";
 oDiv.appendChild(oPs);
 var opsCont = ['日', '一', '二', '三', '四', '五', '六'];
 for (var i = 0; i <= 6; i++) {
 var oSpan = document.createElement('span');
 oPs.appendChild(oSpan);
 oSpan.innerHTML = opsCont[i];
 }
 //創建日歷上面的日期行數所需要的變量
 var oUl = document.createElement('ul');
 oUl.className = "rlCenter";
 oDiv.appendChild(oUl);
 var currentDate = new Date();
 var currentYear = currentDate.getFullYear();
 var currentMonth = currentDate.getMonth();
 active(currentMonth);//傳參數月份
 //創建日歷上下翻月
 prev.onclick = function () {
 active(--currentMonth);
 };
 next.onclick = function () {
 active(++currentMonth);
 };
 }
 //動態創建日歷上面日期,變包裝成方法
 function active(m) {
 oUl.innerHTML = ''; //切忌一定要把這個內容去掉,要不然會點一次翻頁都在日歷下面依次顯示出來
 var activeDate = new Date(currentYear, m, 1); //外面傳進來的不斷變化的日期對象
 var year = activeDate.getFullYear();
 var month = activeDate.getMonth(); //把當前的月份保存下來只是為了給title獲取月份
 content.innerHTML = year + '年' + (month + 1) + '月';
 //創建日歷上面的日期行數
 var n = 1 - activeDate.getDay();
 if (n == 1) {
 n = -6;
 } //為了日歷更友好的顯示三個月,讓用戶看的更明白。
 activeDate.setDate(n); //如果n為負數,則減少月份.在用這個月最后一天減去這個值就可以獲得日歷從哪天開始的。
 for (var i = 0; i < 42; i++) {
 var oLi = document.createElement('li');
 oUl.appendChild(oLi);
 var date = activeDate.getDate(); //返回日期1-31號
 oLi.innerHTML = date;
 oLi.dateValue = year + "-" + (activeDate.getMonth() + 1) + "-" + date; //這里必須是activeDate.getMonth()+1,不能用m+1。因為這個是一直變化的。要不然日歷不管點哪天都是屬于當前月份的。
 oLi.onclick = function () {
  ele.value = this.dateValue;//文本框獲取的年月日
  document.body.removeChild(oDiv); //獲取到年月日,日歷取消
  oDiv = null;
 };
 if (activeDate.getMonth() != month) {
  oLi.style.color = "#ccc"; //不是本月的天數顏色變成灰色 
 }
 //切忌下面這個增加天數語句,一定要判斷完上面是不是本月的天數,然后在添加這條增加語句,要不然會出現錯誤。
 activeDate.setDate(date + 1); //如果超出該月份應有的天數則增加月份
 }
 }
 }
 function offset(ele) {
 var l = ele.offsetLeft;
 var t = ele.offsetTop;
 var p = ele.offsetParent;
 while (p) {
 if (window.navigator.userAgent.indexOf("MSIE 8") > -1) {
 l += p.offsetLeft;
 t += p.offsetTop;
 } else {
 l += p.offsetLeft + p.clientLeft;
 t += p.offsetTop + p.clientTop;
 }
 p = p.offsetParent;
 }
 return {
 left: l,
 top: t
 }
 }
</script>

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广德县| 东兰县| 米易县| 铜川市| 循化| 佛教| 张掖市| 武威市| 武夷山市| 行唐县| 河北区| 济阳县| 济源市| 安庆市| 荃湾区| 即墨市| 蒲城县| 陇南市| 赣榆县| 正宁县| 怀来县| 普兰店市| 海淀区| 靖江市| 卢龙县| 内黄县| 宜宾县| 淮滨县| 全南县| 新化县| 宜春市| 阿合奇县| 和田县| 江陵县| 永顺县| 辽阳市| 苏尼特左旗| 滦平县| 兰州市| 普格县| 托克托县|