jQuery實(shí)現(xiàn)簡(jiǎn)單日歷效果
更新時(shí)間:2020年07月05日 09:35:07 作者:DniNgL
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)簡(jiǎn)單日歷效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了jQuery實(shí)現(xiàn)簡(jiǎn)單日歷效果的具體代碼,供大家參考,具體內(nèi)容如下
日歷效果如下圖:
css部分:
<style> * { margin: 0; padding: 0; list-style: none; } .main { width: 380px; height: 370px; margin: 30px auto; position: relative; } button { width: 30px; height: 30px; border-radius: 50%; background: pink; font-size: 12px; text-align: center; line-height: 30px; border: none; position: absolute; color: #fff; outline: none; cursor: pointer; user-select: none; } .prev { top: 10px; left: 6%; } .next { top: 10px; right: 6%; } .nowTime { width: 90px; position: absolute; top: 15px; right: calc(50% - 45px); font-size: 14px; font-weight: bold; background: linear-gradient(to right, rgb(247, 149, 190), rgb(248, 204, 228)); -webkit-background-clip: text; color: transparent; } .container { width: 350px; margin: 50px auto; border: 1px solid #ccc; position: absolute; top: calc(50% - 190px); left: calc(50% - 175px); } .container ul:first-of-type { background: rgb(245, 195, 195); color: rgb(43, 40, 40); } .container ul { width: 350px; margin: 0 auto; display: flex; flex-wrap: wrap; text-align: center; } .container li { width: 50px; height: 50px; text-align: center; line-height: 50px; cursor: pointer; } .container li:not(.disabled):hover { background: rgb(255, 174, 208); } li.disabled { background: rgb(252, 238, 238); cursor: not-allowed; color: rgb(206, 206, 206); } li.active { background: rgb(255, 206, 214); } </style>
html部分:
<div class="main"> <button class="prev">上月</button> <p class="nowTime"></p> <button class="next">下月</button> <div class="container"> <ul> <li>日</li> <li>一</li> <li>二</li> <li>三</li> <li>四</li> <li>五</li> <li>六</li> </ul> <ul class="content"> </ul> </div> </div>
js部分:
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> $(function () { let allDays = 0 let now = new Date() let global_month = now.getMonth() + 1 let global_year = now.getFullYear() let today = now.getDate() $('.prev').click(function () { now.setMonth(now.getMonth() - 1) calendar() }) $('.next').click(function () { now.setMonth(now.getMonth() + 1) calendar() }) function calendar() { $('.content').empty() let month = now.getMonth() + 1 let year = now.getFullYear() //得到每個(gè)月多少天 switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: allDays = 31 break; case 4: case 6: case 9: case 11: allDays = 30 break; default: //判斷閏年 得到二月份的天數(shù) if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) { allDays = 29 } else { allDays = 28 } break; } //獲取當(dāng)前月份有多少天 生成相應(yīng)個(gè)數(shù)的li for (let i = 1; i <= allDays; i++) { let li = $('<li/>').text(i) //給對(duì)應(yīng)今天的li添加高亮效果 if (i === today && year === global_year && month === global_month) li.addClass('active') $('.content').append(li) } //思路:每個(gè)月一號(hào)前面空幾個(gè) 空的個(gè)數(shù)為周幾就空幾個(gè) now.setDate(1) //將時(shí)間設(shè)置成本月的一號(hào) let firstDay = now.getDay() // 獲取一號(hào)是周幾 for (let i = 0; i < firstDay; i++) { // 循環(huán)次數(shù)為對(duì)應(yīng)的是周幾 now.setDate(now.getDate() - 1) //每循環(huán)一次 日期往前倒一天 let li = $('<li/>').text(now.getDate()).addClass('disabled') //生成相對(duì)應(yīng)的空格 $('.content').prepend(li) } now.setDate(now.getDate() + firstDay) //將時(shí)間設(shè)置回當(dāng)前時(shí)間 否則影響后面時(shí)間的獲取 now.setDate(allDays) //思路:每個(gè)月最后一天后面空幾個(gè) 空的個(gè)數(shù)為6減周幾就空幾個(gè) now.setDate(allDays) //將時(shí)間設(shè)置成每月最后一天 let lastDay = 6 - now.getDay() //最后空的個(gè)數(shù) for (let i = 0; i < lastDay; i++) { now.setDate(now.getDate() + 1) //每循環(huán)一次 日期往后加一天 let li = $('<li/>').text(now.getDate()).addClass('disabled') //生成相對(duì)應(yīng)的空格 $('.content').append(li) } now.setDate(now.getDate() - lastDay) //將時(shí)間設(shè)置回當(dāng)前時(shí)間 否則影響后面時(shí)間的獲取 now.setDate(1) $('.nowTime').html(now.getFullYear() + '年' + (now.getMonth() + 1) + '月') } calendar() }) </script>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jquery實(shí)現(xiàn)自定義圖片裁剪功能【推薦】
本文主要介紹了jquery實(shí)現(xiàn)自定義圖片裁剪功能,代碼超級(jí)簡(jiǎn)單,易修改。下面跟著小編一起來看下吧2017-03-03jQuery對(duì)底部導(dǎo)航進(jìn)行跳轉(zhuǎn)并高亮顯示的實(shí)例代碼
這篇文章主要介紹了jQuery對(duì)底部導(dǎo)航進(jìn)行跳轉(zhuǎn)并高亮顯示的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-04-04jQuery實(shí)現(xiàn)手機(jī)版頁面翻頁效果的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)硪黄猨Query實(shí)現(xiàn)手機(jī)版頁面翻頁效果的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10jQuery EasyUI API 中文文檔 - ComboGrid 組合表格
jQuery EasyUI API 中文文檔 - ComboGrid 組合表格,需要的朋友可以參考下。2011-10-10