最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

原生js開(kāi)發(fā)的日歷插件

 更新時(shí)間:2017年02月04日 11:41:05   作者:gaoxiaosong1113  
本文主要分享了原生js開(kāi)發(fā)的日歷插件的示例代碼。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧

效果如下所示:

代碼如下:

<style type="text/css">
 * {
 margin: 0;
 padding: 0;
 }
 ul, li {
 list-style: none;
 }
 #week {
 width: 350px;
 height: 350px;
 border: 1px solid #ccc;
 }
 #week h6 {
 font-size: 20px;
 overflow: hidden;
 height: 40px;
 line-height: 40px;
 }
 #week h6 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;
 //創(chuàng)建日歷界面
 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";
 //創(chuàng)建日歷title
 var h6 = document.createElement('h6');
 oDiv.appendChild(h6);
 var prev = document.createElement('div');
 h6.appendChild(prev);
 prev.className = 'prev';
 prev.innerHTML = '上個(gè)月';
 var content = document.createElement('div');
 content.className = "content";
 h6.appendChild(content);
 var next = document.createElement('div');
 h6.appendChild(next);
 next.className = 'next';
 next.innerHTML = '下個(gè)月';
 //創(chuàng)建星期日到星期六的文字行
 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];
 }
 //創(chuàng)建日歷上面的日期行數(shù)所需要的變量
 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);//傳參數(shù)月份
 //創(chuàng)建日歷上下翻月
 prev.onclick = function () {
 active(--currentMonth);
 };
 next.onclick = function () {
 active(++currentMonth);
 };
 }
 //動(dòng)態(tài)創(chuàng)建日歷上面日期,變包裝成方法
 function active(m) {
 oUl.innerHTML = ''; //切忌一定要把這個(gè)內(nèi)容去掉,要不然會(huì)點(diǎn)一次翻頁(yè)都在日歷下面依次顯示出來(lái)
 var activeDate = new Date(currentYear, m, 1); //外面?zhèn)鬟M(jìn)來(lái)的不斷變化的日期對(duì)象
 var year = activeDate.getFullYear();
 var month = activeDate.getMonth(); //把當(dāng)前的月份保存下來(lái)只是為了給title獲取月份
 content.innerHTML = year + '年' + (month + 1) + '月';
 //創(chuàng)建日歷上面的日期行數(shù)
 var n = 1 - activeDate.getDay();
 if (n == 1) {
 n = -6;
 } //為了日歷更友好的顯示三個(gè)月,讓用戶看的更明白。
 activeDate.setDate(n); //如果n為負(fù)數(shù),則減少月份.在用這個(gè)月最后一天減去這個(gè)值就可以獲得日歷從哪天開(kāi)始的。
 for (var i = 0; i < 42; i++) {
 var oLi = document.createElement('li');
 oUl.appendChild(oLi);
 var date = activeDate.getDate(); //返回日期1-31號(hào)
 oLi.innerHTML = date;
 oLi.dateValue = year + "-" + (activeDate.getMonth() + 1) + "-" + date; //這里必須是activeDate.getMonth()+1,不能用m+1。因?yàn)檫@個(gè)是一直變化的。要不然日歷不管點(diǎn)哪天都是屬于當(dāng)前月份的。
 oLi.onclick = function () {
  ele.value = this.dateValue;//文本框獲取的年月日
  document.body.removeChild(oDiv); //獲取到年月日,日歷取消
  oDiv = null;
 };
 if (activeDate.getMonth() != month) {
  oLi.style.color = "#ccc"; //不是本月的天數(shù)顏色變成灰色 
 }
 //切忌下面這個(gè)增加天數(shù)語(yǔ)句,一定要判斷完上面是不是本月的天數(shù),然后在添加這條增加語(yǔ)句,要不然會(huì)出現(xiàn)錯(cuò)誤。
 activeDate.setDate(date + 1); //如果超出該月份應(yīng)有的天數(shù)則增加月份
 }
 }
 }
 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>

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • 微信小程序 如何引入外部字體庫(kù)iconfont的圖標(biāo)

    微信小程序 如何引入外部字體庫(kù)iconfont的圖標(biāo)

    這篇文章主要為大家詳細(xì)介紹了微信小程序引入外部字體庫(kù)iconfont圖標(biāo)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • JavaScript中發(fā)出HTTP請(qǐng)求最常用的方法

    JavaScript中發(fā)出HTTP請(qǐng)求最常用的方法

    JavaScript具有很好的模塊和方法來(lái)發(fā)送可用于從服務(wù)器端資源發(fā)送或接收數(shù)據(jù)的HTTP請(qǐng)求。這篇文章主要介紹了JavaScript中發(fā)出HTTP請(qǐng)求最常用的方法,需要的朋友可以參考下
    2018-07-07
  • 利用JavaScript實(shí)現(xiàn)的10種排序算法總結(jié)

    利用JavaScript實(shí)現(xiàn)的10種排序算法總結(jié)

    這篇文章主要介紹了利用JavaScript實(shí)現(xiàn)的十種排序算法,主要介紹了冒泡,選擇,插入,希爾,歸并,快速,堆排,計(jì)數(shù),桶排和基數(shù),有感興趣的小伙伴可以參考閱讀本文
    2023-05-05
  • javascript讀寫(xiě)json示例

    javascript讀寫(xiě)json示例

    JSON是一種簡(jiǎn)單的數(shù)據(jù)格式,比xml更輕巧,在 JavaScript 中處理 JSON 數(shù)據(jù)不需要任何特殊的 API 或工具包,下面有個(gè)示例,大家可以參考下
    2014-04-04
  • 12306驗(yàn)證碼破解思路分享

    12306驗(yàn)證碼破解思路分享

    本文給大家分享的是個(gè)人對(duì)于12306的新的驗(yàn)證碼系統(tǒng)的破解思路,僅僅是思路,還沒(méi)進(jìn)行實(shí)地驗(yàn)證,推薦給大家,拋磚引玉吧。
    2015-03-03
  • js 處理URL實(shí)用技巧

    js 處理URL實(shí)用技巧

    escape()、encodeURI()、encodeURIComponent()三種方法都能對(duì)一些影響URL完整性的特殊字符進(jìn)行過(guò)濾。
    2010-11-11
  • JavaScript中的執(zhí)行環(huán)境和作用域鏈

    JavaScript中的執(zhí)行環(huán)境和作用域鏈

    這篇文章主要介紹了JavaScript中的執(zhí)行環(huán)境和作用域鏈,幫助大家更好的理解和學(xué)習(xí)JavaScript,感興趣的朋友可以了解下
    2020-09-09
  • javascript獲取以及設(shè)置光標(biāo)位置

    javascript獲取以及設(shè)置光標(biāo)位置

    本文介紹了javascript獲取以及設(shè)置光標(biāo)位置的方法,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • js簡(jiǎn)單抽獎(jiǎng)代碼

    js簡(jiǎn)單抽獎(jiǎng)代碼

    年底了各個(gè)公司都有抽獎(jiǎng)活動(dòng),我也寫(xiě)了一個(gè)超級(jí)簡(jiǎn)單的代碼來(lái)實(shí)現(xiàn)抽獎(jiǎng)效果,這里沒(méi)有華麗的Css3效果,但卻有短小精悍的js代碼。
    2015-01-01
  • js實(shí)現(xiàn)同一個(gè)頁(yè)面,多個(gè)enter事件綁定的示例

    js實(shí)現(xiàn)同一個(gè)頁(yè)面,多個(gè)enter事件綁定的示例

    今天小編就為大家分享一篇js實(shí)現(xiàn)同一個(gè)頁(yè)面,多個(gè)enter事件綁定的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10

最新評(píng)論

基隆市| 丰城市| 洞头县| 芮城县| 磐石市| 松原市| 涟水县| 绥滨县| 彭水| 滁州市| 西乌珠穆沁旗| 新安县| 临江市| 固阳县| 会理县| 揭东县| 河西区| 大厂| 墨玉县| 江永县| 克山县| 垫江县| 翁牛特旗| 澎湖县| 德格县| 浙江省| 上思县| 延庆县| 颍上县| 平远县| 长寿区| 彰武县| 梅州市| 礼泉县| 岳阳县| 耒阳市| 乃东县| 丹棱县| 长春市| 罗城| 朝阳区|