<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        原生js實現仿window10系統日歷效果的實例

        來源:懂視網 責編:小采 時間:2020-11-27 22:26:21
        文檔

        原生js實現仿window10系統日歷效果的實例

        原生js實現仿window10系統日歷效果的實例:舞動的靈魂版js日歷,完全采用js實現,故而實現了與語言無關,jsp、asp.net php asp均可使用.無論你是開發軟件,還是網站,均是不可或缺的實用代碼。 該日歷主要實現了獲取當前時間時分秒,年月日星期,動態生成選擇年的select,月的select,然后根據你
        推薦度:
        導讀原生js實現仿window10系統日歷效果的實例:舞動的靈魂版js日歷,完全采用js實現,故而實現了與語言無關,jsp、asp.net php asp均可使用.無論你是開發軟件,還是網站,均是不可或缺的實用代碼。 該日歷主要實現了獲取當前時間時分秒,年月日星期,動態生成選擇年的select,月的select,然后根據你

        舞動的靈魂版js日歷,完全采用js實現,故而實現了與語言無關,jsp、asp.net php asp均可使用.無論你是開發軟件,還是網站,均是不可或缺的實用代碼。

        該日歷主要實現了獲取當前時間時分秒,年月日星期,動態生成選擇年的select,月的select,然后根據你所選中的年月,顯示該年月對應的這一個月的日期。

        點擊上一個月,下一個月按鈕,在下拉列表中顯示對應的年月。

         <!DOCTYPE html>
        <html lang="en">
        <head>
         <meta charset="UTF-8">
         <title>Title</title>
         <style>
         #calendar {
         position: absolute;
         padding: 5px;
         border: 1px solid #000000;
         background: #8f3349;
         display: none;
         }
        
         #todayTime {
         padding: 5px 0;
         font-size: 40px;
         color: white;
         }
         #todayDate {
         padding: 5px 0;
         font-size: 24px;
         color: #ffcf88;
         }
         #tools {
         padding: 5px 0;
         height: 30px;
         color: white;
         }
         #tools .l {
         float: left;
         }
         #tools .r {
         float: right;
         }
         table {
         width: 100%;
         color: white;
         }
         table th {
         color: #a2cbf3;
         }
         table td {
         text-align: center;
         cursor: default;
         }
         table td.today {
         background: #cc2951;
         color: white;
         }
         </style>
         <script>
         window.onload = function() {
        
         var text1 = document.getElementById('text1');
        
         text1.onfocus = function() {
         calendar();
         }
        
        // calendar();
        
         function calendar() {
        
         var calendarElement = document.getElementById('calendar');
         var todayTimeElement = document.getElementById('todayTime');
         var todayDateElement = document.getElementById('todayDate');
         var selectYearElement = document.getElementById('selectYear');
         var selectMonthElement = document.getElementById('selectMonth');
         var showTableElement = document.getElementById('showTable');
         var prevMonthElement = document.getElementById('prevMonth');
         var nextMonthElement = document.getElementById('nextMonth');
        
         calendarElement.style.display = 'block';
        
         /*
         * 獲取今天的時間
         * */
         var today = new Date();
        
         //設置日歷顯示的年月
         var showYear = today.getFullYear();
         var showMonth = today.getMonth();
        
         //持續更新當前時間
         updateTime();
        
         //顯示當前的年月日星期
         todayDateElement.innerHTML = getDate(today);
        
         //動態生成選擇年的select
         for (var i=1970; i<2020; i++) {
         var option = document.createElement('option');
         option.value = i;
         option.innerHTML = i;
         if ( i == showYear ) {
         option.selected = true;
         }
         selectYearElement.appendChild(option);
         }
         //動態生成選擇月的select
         for (var i=1; i<13; i++) {
         var option = document.createElement('option');
         option.value = i - 1;
         option.innerHTML = i;
         if ( i == showMonth + 1 ) {
         option.selected = true;
         }
         selectMonthElement.appendChild(option);
         }
        
         //初始化顯示table
         showTable();
        
         //選擇年
         selectYearElement.onchange = function() {
         showYear = this.value;
         showTable();
         showOption();
         }
        
         //選擇月
         selectMonthElement.onchange = function() {
         showMonth = Number(this.value);
         showTable();
         showOption();
         }
        
         //上一個月
         prevMonthElement.onclick = function() {
         showMonth--;
         showTable();
         showOption();
         }
        
         //下一個月
         nextMonthElement.onclick = function() {
         showMonth++;
         showTable();
         showOption();
         }
        
        
         /*
         * 實時更新當前時間
         * */
         function updateTime() {
         var timer = null;
         //每個500毫秒獲取當前的時間,并把當前的時間格式化顯示到指定位置
         var today = new Date();
         todayTimeElement.innerHTML = getTime(today);
         timer = setInterval(function() {
         var today = new Date();
         todayTimeElement.innerHTML = getTime(today);
         }, 500);
         }
        
         function showTable() {
         showTableElement.tBodies[0].innerHTML = '';
         //根據當前需要顯示的年和月來創建日歷
         //創建一個要顯示的年月的下一個的日期對象
         var date1 = new Date(showYear, showMonth+1, 1, 0, 0, 0);
         //對下一個月的1號0時0分0秒的時間 - 1得到要顯示的年月的最后一天的時間
         var date2 = new Date(date1.getTime() - 1);
         //得到要顯示的年月的總天數
         var showMonthDays = date2.getDate();
         //獲取要顯示的年月的1日的星期,從0開始的星期
         date2.setDate(1);
         //showMonthWeek表示這個月的1日的星期,也可以作為表格中前面空白的單元格的個數
         var showMonthWeek = date2.getDay();
        
         var cells = 7;
         var rows = Math.ceil( (showMonthDays + showMonthWeek) / cells );
        
         //通過上面計算出來的行和列生成表格
         //沒生成一行就生成7列
         //行的循環
         for ( var i=0; i<rows; i++ ) {
        
         var tr = document.createElement('tr');
        
         //列的循環
         for ( var j=0; j<cells; j++ ) {
        
         var td = document.createElement('td');
        
         var v = i*cells + j - ( showMonthWeek - 1 );
        
         //根據這個月的日期控制顯示的數字
         //td.innerHTML = v;
         if ( v > 0 && v <= showMonthDays ) {
        
         //高亮顯示今天的日期
         if ( today.getFullYear() == showYear && today.getMonth() == showMonth && today.getDate() == v ) {
         td.className = 'today';
         }
        
         td.innerHTML = v;
         } else {
         td.innerHTML = '';
         }
        
         td.ondblclick = function() {
         calendarElement.style.display = 'none';
        
         text1.value = showYear + '年' + (showMonth+1) + '月' + this.innerHTML + '日';
         }
        
         tr.appendChild(td);
        
         }
        
         showTableElement.tBodies[0].appendChild(tr);
        
         }
         }
        
         function showOption() {
        
         var date = new Date(showYear, showMonth);
         var sy = date.getFullYear();
         var sm = date.getMonth();
         console.log(showYear, showMonth)
        
         var options = selectYearElement.getElementsByTagName('option');
         for (var i=0; i<options.length; i++) {
         if ( options[i].value == sy ) {
         options[i].selected = true;
         }
         }
        
         var options = selectMonthElement.getElementsByTagName('option');
         for (var i=0; i<options.length; i++) {
         if ( options[i].value == sm ) {
         options[i].selected = true;
         }
         }
         }
         }
        
         /*
         * 獲取指定時間的時分秒
         * */
         function getTime(d) {
         return [
         addZero(d.getHours()),
         addZero(d.getMinutes()),
         addZero(d.getSeconds())
         ].join(':');
         }
        
         /*
         * 獲取指定時間的年月日和星期
         * */
         function getDate(d) {
         return d.getFullYear() + '年'+ addZero(d.getMonth() + 1) +'月'+ addZero(d.getDate()) +'日 星期' + getWeek(d.getDay());
         }
        
         /*
         * 給數字加前導0
         * */
         function addZero(v) {
         if ( v < 10 ) {
         return '0' + v;
         } else {
         return '' + v;
         }
         }
        
         /*
         * 把數字星期轉換成漢字星期
         * */
         function getWeek(n) {
         return '日一二三四五六'.split('')[n];
         }
        
         }
         </script>
        </head>
        <body>
        
        <input type="text" id="text1">
        
         <div id="calendar">
        
         <div id="todayTime"></div>
         <div id="todayDate"></div>
        
         <div id="tools">
         <div class="l">
         <select id="selectYear"></select> 年
         <select id="selectMonth"></select> 月
         </div>
         <div class="r">
         <span id="prevMonth">∧</span>
         <span id="nextMonth">∨</span>
         </div>
         </div>
        
         <table id="showTable">
         <thead>
         <tr>
         <th>日</th>
         <th>一</th>
         <th>二</th>
         <th>三</th>
         <th>四</th>
         <th>五</th>
         <th>六</th>
         </tr>
         </thead>
         <tbody></tbody>
         </table>
        
         </div>
        
        </body>
        </html>

        效果:

        以上這篇原生js實現仿window10系統日歷效果的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        原生js實現仿window10系統日歷效果的實例

        原生js實現仿window10系統日歷效果的實例:舞動的靈魂版js日歷,完全采用js實現,故而實現了與語言無關,jsp、asp.net php asp均可使用.無論你是開發軟件,還是網站,均是不可或缺的實用代碼。 該日歷主要實現了獲取當前時間時分秒,年月日星期,動態生成選擇年的select,月的select,然后根據你
        推薦度:
        標簽: win10 日歷 實現
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲成av人片在线天堂无| 0588影视手机免费看片| 亚洲午夜在线播放| 亚洲开心婷婷中文字幕| 在线观看无码的免费网站| 久久久久免费看成人影片| 亚洲日韩在线观看免费视频| 亚洲精品无码久久久久A片苍井空| 亚洲视频一区调教| 亚洲日产韩国一二三四区| 国产高清在线免费视频| 在线观看免费高清视频| 一区二区三区四区免费视频| yellow视频免费看| 免费的黄色网页在线免费观看| 亚洲欧洲日韩国产一区二区三区| 亚洲综合网美国十次| 久久91亚洲精品中文字幕| 国产自偷亚洲精品页65页| 免费国产成人午夜电影| 成在线人永久免费视频播放| 久久不见久久见中文字幕免费| 13一14周岁毛片免费| 在线看无码的免费网站| 日韩人妻无码精品久久免费一| 美女网站在线观看视频免费的| 一级毛片完整版免费播放一区| 亚洲AV无码成人网站在线观看| 亚洲一本一道一区二区三区| 亚洲小说图区综合在线| 美女视频黄免费亚洲| 亚洲精品第一综合99久久| 亚洲视频无码高清在线| 激情综合亚洲色婷婷五月APP| 亚洲中文字幕无码av在线| 亚洲国产综合精品中文第一| 亚洲人片在线观看天堂无码| 亚洲色偷精品一区二区三区| 久久久久亚洲精品无码网址色欲| 国产精品日本亚洲777| 羞羞视频在线观看免费|