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

使用Vue實(shí)現(xiàn)簡單日歷效果

 更新時(shí)間:2022年08月30日 16:26:23   作者:風(fēng)葉翩翩  
這篇文章主要為大家詳細(xì)介紹了使用Vue實(shí)現(xiàn)簡單日歷效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

使用Vue實(shí)現(xiàn)簡單的日歷,供大家參考,具體內(nèi)容如下

原理分析:

1.獲取當(dāng)前時(shí)間
2.顯示當(dāng)前時(shí)間
3.點(diǎn)擊增加和減少月份
4.大月和小月的天數(shù)

效果演示

初始樣式(顯示現(xiàn)在的日期時(shí)間)

增加一個(gè)月

在程序開始之前一定注意:

引入Vue.js架包

代碼演示

Body內(nèi)容

<script type="text/x-template" id="calendar">
?? <!-- 年份-->
?? ?? ?<div id="year">
?? ??? ? ? ? ??<!--月份 -->
?? ??? ? ? ? ? ? ? ?<div class="month">
?? ??? ? ? ? ? ? ? ? ? ?<ul>
?? ??? ? ? ? ? ? ? ? ? ? ? ?<li class="arrow" @click="pickPre(currentYear,currentMonth)">?</li>
?? ??? ? ? ? ? ? ? ? ? ? ? ?<li class="year-month" @click="pickYear(currentYear,currentMonth)">
?? ??? ? ? ? ? ? ? ? ? ? ? ? ? ?<span class="choosen-year" style="color:blue">{{ currentYear }}</span>
?? ??? ? ? ? ? ? ? ? ? ? ? ? ? ?<span class="choosen-month" style="color:blue">{{ currentMonth }}月</span>
?? ??? ? ? ? ? ? ? ? ? ? ? ?</li>
?? ??? ? ? ? ? ? ? ? ? ? ? ?<li class="arrow" @click="pickNext(currentYear,currentMonth)">?</li>
?? ??? ? ? ? ? ? ? ? ? ?</ul>
?? ??? ? ? ? ? ? ? ?</div>
?? ??? ? ? ? ? ? ? ?<!-- 星期 -->
?? ??? ? ? ? ? ? ? ?<ul class="weekdays">
?? ??? ? ? ? ? ? ? ? ? ?<li>一</li>
?? ??? ? ? ? ? ? ? ? ? ?<li>二</li>
?? ??? ? ? ? ? ? ? ? ? ?<li>三</li>
?? ??? ? ? ? ? ? ? ? ? ?<li>四</li>
?? ??? ? ? ? ? ? ? ? ? ?<li>五</li>
?? ??? ? ? ? ? ? ? ? ? ?<li style="color:red">六</li>
?? ??? ? ? ? ? ? ? ? ? ?<li style="color:red">日</li>
?? ??? ? ? ? ? ? ? ?</ul>
?? ??? ? ? ? ? ? ? ?<!-- 日期 -->
?? ??? ? ? ? ? ? ? ?<ul class="days">
?? ??? ? ? ? ? ? ? ? ? ?<!-- 循環(huán)-->
?? ??? ? ? ? ? ? ? ? ? ?<li v-for="dayobject in days">
?? ??? ? ? ? ? ? ? ? ? ? ? ?<!--本月-->
?? ??? ?
?? ??? ? ? ? ? ? ? ? ? ? ? ?<span v-if="dayobject.day.getMonth()+1 != currentMonth" class="other-month">{{ dayobject.day.getDate() }}</span>
?? ??? ?
?? ??? ? ? ? ? ? ? ? ? ? ? ?<!--判斷天數(shù)是否正確-->
?? ??? ? ? ? ? ? ? ? ? ? ? ?<span v-else>
?? ??? ? ? ? ? ? ? ? ? ? ? ? ? ?<!--今天-->
?? ??? ? ? ? ? ? ? ? ? ? ? ? ? ?<span v-if="dayobject.day.getFullYear() == new Date().getFullYear() && dayobject.day.getMonth() == new Date().getMonth() && dayobject.day.getDate() == new Date().getDate()"
?? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?class="active">{{ dayobject.day.getDate() }}</span>
?? ??? ? ? ? ? ? ? ? ? ? ? ? ? ?<span v-else>{{ dayobject.day.getDate() }}</span>
?? ??? ? ? ? ? ? ? ? ? ? ? ?</span>
?? ??? ?
?? ??? ? ? ? ? ? ? ? ? ?</li>
?? ??? ? ? ? ? ? ? ?</ul>
?? ??? ? ? ? ? ?</div>
?? ??? ? ? ?</script>
<div id="app">
?? ? ?<calendar></calendar>
</div>

CSS樣式

* {
?? ??? ? ? ?margin: 0;
?? ??? ? ? ?padding: 0;
?? ??? ?}
?? ??? ?
?? ??? ?
?? ??? ?/*日歷*/
?? ??? ?
?? ??? ?#calendar {
?? ??? ? ? ?width: 98%;
?? ??? ? ? ?border: 2px solid #A4A7B0;
?? ??? ? ? ?height: 335px;
?? ??? ? ? ?margin-left: 0.5%;
?? ??? ?}
?? ??? ?
?? ??? ?.month {
?? ??? ? ? ?width: 92%;
?? ??? ? ? ?height: 48px;
?? ??? ? ? ?border: 2px solid #FFFFFF;
?? ??? ? ? ?margin-left: 3%;
?? ??? ? ? ?margin-top: 20px;
?? ??? ?}
?? ??? ?
?? ??? ?.month ul {
?? ??? ? ? ?margin: 0;
?? ??? ? ? ?padding: 0;
?? ??? ? ? ?display: flex;
?? ??? ? ? ?margin-top: 11px;
?? ??? ? ? ?justify-content: space-between;
?? ??? ?}
?? ??? ?
?? ??? ?.year-month {
?? ??? ? ? ?flex-direction: column;
?? ??? ? ? ?align-items: center;
?? ??? ? ? ?justify-content: space-around;
?? ??? ?}
?? ??? ?
?? ??? ?.choosen-year {
?? ??? ? ? ?padding: 0 20px;
?? ??? ? ? ?font-size: 16px;
?? ??? ? ? ?font-weight: 200;
?? ??? ?}
?? ??? ?
?? ??? ?.choosen-month {
?? ??? ? ? ?text-align: center;
?? ??? ? ? ?font-size: 16px;
?? ??? ? ? ?font-weight: 200;
?? ??? ?}
?? ??? ?
?? ??? ?.arrow {
?? ??? ? ? ?width: 3%;
?? ??? ? ? ?height: 25px;
?? ??? ?}
?? ??? ?
?? ??? ?.arrow1 {
?? ??? ? ? ?background: url(left.png) no-repeat 0 0 /100% 100%;
?? ??? ? ? ?margin-left: 44px;
?? ??? ?}
?? ??? ?
?? ??? ?.arrow2 {
?? ??? ? ? ?background: url(right.png) no-repeat 0 0 /100% 100%;
?? ??? ? ? ?margin-right: 44px;
?? ??? ?}
?? ??? ?
?? ??? ?.month ul li {
?? ??? ? ? ?color: #999;
?? ??? ? ? ?font-size: 20px;
?? ??? ? ? ?text-transform: uppercase;
?? ??? ? ? ?letter-spacing: 3px;
?? ??? ? ? ?list-style: none;
?? ??? ?}
?? ??? ?
?? ??? ?.weekdays {
?? ??? ? ? ?margin: 0;
?? ??? ? ? ?color: #FFFFFF;
?? ??? ? ? ?background: #A4A7B0;
?? ??? ? ? ?width: 96.6%;
?? ??? ? ? ?margin-top: 26px;
?? ??? ? ? ?height: 34px;
?? ??? ? ? ?line-height: 34px;
?? ??? ? ? ?margin-left: 2.2%;
?? ??? ?}
?? ??? ?
?? ??? ?.weekdays li {
?? ??? ? ? ?display: inline-block;
?? ??? ? ? ?text-align: center;
?? ??? ? ? ?color: #11616f;
?? ??? ? ? ?font-size: 14px;
?? ??? ? ? ?font-weight: 100;
?? ??? ? ? ?width: 12.7%;
?? ??? ?}
?? ??? ?
?? ??? ?.days {
?? ??? ? ? ?padding: 0;
?? ??? ? ? ?margin: 0;
?? ??? ? ? ?display: flex;
?? ??? ? ? ?flex-wrap: wrap;
?? ??? ? ? ?justify-content: space-around;
?? ??? ?}
?? ??? ?
?? ??? ?.days li {
?? ??? ? ? ?list-style-type: none;
?? ??? ? ? ?display: inline-block;
?? ??? ? ? ?width: 14.2%;
?? ??? ? ? ?text-align: center;
?? ??? ? ? ?padding-bottom: 3px;
?? ??? ? ? ?padding-top: 7px;
?? ??? ? ? ?font-size: 12.78px;
?? ??? ? ? ?color: rgb(14, 220, 235);
?? ??? ? ? ?font-weight: 200;
?? ??? ?}
?? ??? ?
?? ??? ?.days li span span {
?? ??? ? ? ?height: 29.5px;
?? ??? ? ? ?width: 27px;
?? ??? ? ? ?line-height: 29.5px;
?? ??? ? ? ?display: inline-block;
?? ??? ?}
?? ??? ?
?? ??? ?.days li .class-30 {
?? ??? ? ? ?background: url(bg_30.png) no-repeat 0 0 /100% 100%;
?? ??? ?}
?? ??? ?
?? ??? ?.days li .class-60 {
?? ??? ? ? ?background: url(bg_60.png) no-repeat 0 0 /100% 100%;
?? ??? ?}
?? ??? ?
?? ??? ?.days li .class-3060 {
?? ??? ? ? ?background: url(bg_3060.png) no-repeat 0 0 /100% 100%;
?? ??? ?}
?? ??? ?
?? ??? ?.days li .other-month {
?? ??? ? ? ?padding: 5px;
?? ??? ? ? ?color: #84a8ae;
?? ??? ?}

Vue.js內(nèi)容

Vue.component("calendar", {
?? ??? ??? ?template: "#calendar",
?? ??? ??? ?data: function() {
?? ??? ??? ??? ?return {
?? ??? ??? ??? ??? ?currentDay: 1,
?? ??? ??? ??? ??? ?currentMonth: 1,
?? ??? ??? ??? ??? ?currentYear: 1970,
?? ??? ??? ??? ??? ?currentWeek: 1,
?? ??? ??? ??? ??? ?days: [],
?? ??? ??? ??? ?}
?? ??? ??? ?},
?? ??? ??? ?created() {
?? ??? ??? ??? ?let that = this;
?? ??? ??? ??? ?that.initData(null);
?? ??? ??? ?},
?? ??? ??? ?methods: {
?? ??? ??? ??? ?initData: function(cur) {
?? ??? ??? ??? ??? ?let that = this;
?? ??? ??? ??? ??? ?let leftcount = 0;
?? ??? ??? ??? ??? ?let date;
?? ??? ??? ??? ??? ?if (cur) {
?? ??? ??? ??? ??? ??? ?date = new Date(cur);
?? ??? ??? ??? ??? ?} else {
?? ??? ??? ??? ??? ??? ?let now = new Date();
?? ??? ??? ??? ??? ??? ?let d = new Date(that.formatDate(now.getFullYear(), now.getMonth(), 1));
?? ??? ??? ??? ??? ??? ?d.setDate(35);
?? ??? ??? ??? ??? ??? ?date = new Date(that.formatDate(d.getFullYear(), d.getMonth() + 1, 1));
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?that.currentDay = date.getDate();
?? ??? ??? ??? ??? ?that.currentYear = date.getFullYear();
?? ??? ??? ??? ??? ?that.currentMonth = date.getMonth() + 1;
?? ??? ??? ??? ??? ?that.currentWeek = date.getDay(); // 1...6,0
?? ??? ??? ??? ??? ?if (that.currentWeek == 0) {
?? ??? ??? ??? ??? ??? ?that.currentWeek = 7;
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?let str = that.formatDate(that.currentYear, that.currentMonth, that.currentDay);
?? ??? ??? ??? ??? ?that.days.length = 0;
?? ??? ??? ??? ??? ?//初始化
?? ??? ??? ??? ??? ?for (let i = that.currentWeek - 1; i >= 0; i--) {
?? ??? ??? ??? ??? ??? ?let d = new Date(str);
?? ??? ??? ??? ??? ??? ?d.setDate(d.getDate() - i);
?? ??? ??? ??? ??? ??? ?let dayobject = {};?
?? ??? ??? ??? ??? ??? ?dayobject.day = d;
?? ??? ??? ??? ??? ??? ?that.days.push(dayobject);?
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?for (let i = 1; i <= 35 - that.currentWeek; i++) {
?? ??? ??? ??? ??? ??? ?let d = new Date(str);
?? ??? ??? ??? ??? ??? ?d.setDate(d.getDate() + i);
?? ??? ??? ??? ??? ??? ?let dayobject = {};
?? ??? ??? ??? ??? ??? ?dayobject.day = d;
?? ??? ??? ??? ??? ??? ?that.days.push(dayobject);
?? ??? ??? ??? ??? ?}

?? ??? ??? ??? ?},
?? ??? ??? ??? ?pickPre: function(year, month) {
?? ??? ??? ??? ??? ?let that = this;
?? ??? ??? ??? ??? ?let d = new Date(that.formatDate(year, month, 1));
?? ??? ??? ??? ??? ?d.setDate(0);
?? ??? ??? ??? ??? ?that.initData(that.formatDate(d.getFullYear(), d.getMonth() + 1, 1));
?? ??? ??? ??? ?},
?? ??? ??? ??? ?pickNext: function(year, month) {
?? ??? ??? ??? ??? ?let that = this;
?? ??? ??? ??? ??? ?let d = new Date(that.formatDate(year, month, 1));
?? ??? ??? ??? ??? ?d.setDate(35);
?? ??? ??? ??? ??? ?that.initData(that.formatDate(d.getFullYear(), d.getMonth() + 1, 1));
?? ??? ??? ??? ?},
?? ??? ??? ??? ?pickYear: function(year, month) {
?? ??? ??? ??? ??? ?alert(year + "," + month);
?? ??? ??? ??? ?},
?? ??? ??? ??? ?// 返回 類似 2016-01-02 格式的字符串
?? ??? ??? ??? ?formatDate: function(year, month, day) {
?? ??? ??? ??? ??? ?let y = year;
?? ??? ??? ??? ??? ?let m = month;
?? ??? ??? ??? ??? ?if (m < 10) m = "0" + m;
?? ??? ??? ??? ??? ?let d = day;
?? ??? ??? ??? ??? ?if (d < 10) d = "0" + d;
?? ??? ??? ??? ??? ?return y + "-" + m + "-" + d
?? ??? ??? ??? ?},
?? ??? ??? ?}
?? ??? ?})
?? ??? ?let vm = new Vue({
?? ??? ??? ?el: '#app',
?? ??? ?})

到此程序結(jié)束。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

双牌县| 开平市| 阜康市| 集安市| 高要市| 仪陇县| 耒阳市| 泰和县| 新建县| 临潭县| 泸溪县| 陈巴尔虎旗| 社旗县| 湟中县| 陆河县| 中超| 古丈县| 佛坪县| 濮阳县| 朝阳县| 大渡口区| 拉萨市| 涟源市| 元谋县| 滁州市| 墨脱县| 桃园市| 肇东市| 乌恰县| 五大连池市| 连平县| 衡山县| 托克逊县| 南宫市| 汾西县| 绥芬河市| 额济纳旗| 敖汉旗| 凌源市| 南昌县| 兴国县|