国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js插件講解_javascript原生日歷插件講解

AlphaWatch / 3480人閱讀

摘要:效果圖如下代碼日第一個(gè)參數(shù)代表是否是今天的日歷,如果第一個(gè)參數(shù)為,還需要傳遞倆個(gè)參數(shù),年和月。如何制作控制月份的控件方法如下得到頁(yè)面上的對(duì)象控件。

效果圖如下:

html代碼

-

2017/12

+
123456

css代碼

table{
    width: 300px;
    border-collapse:collapse;
}
th{
    border-bottom: 2px solid springgreen;
}
td{
    text-align: center;
    color: #999;
}
.this-month{
    color: #333;
}
.today{
    color: crimson;
}
.date-control{
    width: 300px;
    height: 20px;
    background: silver;
    position: relative;
}
.date-control p{
    text-align: center;
    line-height: 20px;
    color: #fff;
}
#pre-month,#next-mont{
    display: block;
    height: 20px;
    width: 20px;
    color: #fff;
    position: absolute;
    top: 0;
    text-align: center;
    background: #01cd78;
    cursor: pointer;
    user-select: none;
}
#pre-month{
    left: 0;
}
#next-mont{
    right: 0;
}

js代碼

function Calendar() {
    this.today = new Date();
    this.table = document.getElementById("date-table").getElementsByTagName("tbody")[0];
    this.preMontBtn = document.getElementById("pre-month");
    this.nextMontBtn = document.getElementById("next-mont");
    this.yearText = document.getElementById("table-year");
    this.monthText = document.getElementById("table-month");
}
Calendar.prototype={
    constructor:Calendar,
    calendarInit:function (_isToday,_y,_m) {
        if(_isToday){
            this.drawTable(this.today.getFullYear(),this.today.getMonth());
            this.titleInit(this.today.getFullYear(),this.today.getMonth()+1);
        }else {
            this.drawTable(_y,_m-1);
            this.titleInit(_y,_m)
        }
        this.btnListener();
    },
    getMontInfo:function (_year,_month) {
        var firstDate = new Date(_year,_month,1);
        var lastDate = new Date(_year,_month+1,0);
        return {
            firstDay:firstDate.getDay()===0?7:firstDate.getDay(),
            lastDay:lastDate.getDay()===0?7:lastDate.getDay(),
            days:lastDate.getDate()
        }
    },
    drawTable:function (_year,_month) {
        this.table.innerHTML = "";
        var allDayNum = this.getDateNum(_year,_month);
        var rows = allDayNum.length/7;
        var index = 0;
        for(var i=0;i

知識(shí)點(diǎn):

1、獲得今天的日期對(duì)象:var today = new Date();

2、獲得某一月第一天和最后一天的日期對(duì)象:
var firstDate = new Date(_year,_month,1);//指定(年)月,第一天的日期對(duì)象
var lastDate = new Date(_year,_month+1,0);//指定(年)月,最后一天的日期對(duì)象

3、查看日期對(duì)象的相關(guān)信息:
假設(shè)d是一個(gè)日期對(duì)象(如:var d = new Date(),或,var d=new Date(2017,12,17))
d.getFullYear();//獲得d對(duì)應(yīng)的年
d.getMonth();//獲得d對(duì)應(yīng)的月
d.getDate();//獲得d對(duì)應(yīng)的星期

4、查看日期對(duì)象的信息:
d.toLocaleString()//打印結(jié)果為:2017/12/16 上午9:55:26

思路概要:(逆向)
結(jié)果為:繪制日歷
繪制table頭部,星期123457
繪制日期數(shù)字
得到日期數(shù)字?jǐn)?shù)組
知道這個(gè)月有幾天,第一天星期幾,最后一天星期幾(從而,得到日期數(shù)組)。

方法解析:

1、如何知道某個(gè)月有多少天,第一天星期幾,最后一天星期幾?

方法如下:

function getThisMontInfo(_year,_month) {
    var firstDate = new Date(_year,_month,1);//當(dāng)前月第一天
    var lastDate = new Date(_year,_month+1,0);//當(dāng)前月最后一天
    return {//返回一個(gè)對(duì)象
        firstDay:firstDate.getDay()===0?7:firstDate.getDay();//當(dāng)前月第一天的星期(星期日為0,如果其為零,讓其變?yōu)?)、
        lastDay:lastDate.getDay()===0?7:lastDate.getDay(),//當(dāng)前月最后一天的星期
        days:lastDate.getDate()//當(dāng)前月有多少天,即最后一天的日期。
    }
}

2、如何獲得日期數(shù)組?

方法如下:

//前提知道年和月,即y和m
//利用了上面的方法
thisMonthInfo = getThisMontInfo(y,m);//當(dāng)前月相關(guān)信息
preMontInfo = getThisMontInfo(y,m-1);//上個(gè)月的相關(guān)信息
var allDayNum = [];
//向數(shù)組中添加當(dāng)前月日期。
for(i=0;i

如何繪制table?

步驟為:
1、計(jì)算需要繪制多少行tr
2、繪制對(duì)應(yīng)行數(shù)的tr
3、在每行tr中繪制7個(gè)td
4、在td中添加數(shù)字
5、用css區(qū)分這個(gè)月的日期數(shù)字和上個(gè)月或下個(gè)月的日期數(shù)字。
方法如下:

function drawTable(_year,_month) {
    table.innerHTML = "";
    var allDayNum = getDateNum(_year,_month);//通過上面的方法獲得了日期數(shù)組
    var rows = allDayNum.length/7;//計(jì)算需要繪制多少行tr
    var index = 0;//日期數(shù)組的坐標(biāo)
    for(var i=0;i

如何制作控制月份的控件?

方法如下:

//得到頁(yè)面上的對(duì)象控件。
var preMontBtn = document.getElementById("pre-month");
var nextMontBtn = document.getElementById("next-mont");
//為控件添加監(jiān)聽事件
preMontBtn.addEventListener("click",function () {
//獲得頁(yè)面上顯示的年月
    var dateInfo = {
        year:document.getElementById("table-year").innerText*1,
        month:document.getElementById("table-month").innerText*1
    };
//計(jì)算上個(gè)月的年和月
    var newDateInfo = {
        year:dateInfo.month-1===0?dateInfo.year-1:dateInfo.year,
        month:dateInfo.month-1===0?12:dateInfo.month-1
    };
//修改頁(yè)面上的年月信息
    document.getElementById("table-year").innerText = newDateInfo.year;
    document.getElementById("table-month").innerText = newDateInfo.month;
//重新繪制表格,利用的是上文的方法
    drawTable(newDateInfo.year,newDateInfo.month-1);
});
//對(duì)下個(gè)月按鈕的監(jiān)聽
nextMontBtn.addEventListener("click",function () {
    var dateInfo = {
        year:document.getElementById("table-year").innerText*1,
        month:document.getElementById("table-month").innerText*1
    };
    var newDateInfo = {
        year:dateInfo.month+1===13?dateInfo.year+1:dateInfo.year,
        month:dateInfo.month+1===13?1:dateInfo.month+1
    };
    document.getElementById("table-year").innerText = newDateInfo.year;
    document.getElementById("table-month").innerText = newDateInfo.month;
    drawTable(newDateInfo.year,newDateInfo.month-1);
});

完整代碼在開篇。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/112889.html

相關(guān)文章

  • js插件講解_javascript原生日歷插件講解

    摘要:效果圖如下代碼日第一個(gè)參數(shù)代表是否是今天的日歷,如果第一個(gè)參數(shù)為,還需要傳遞倆個(gè)參數(shù),年和月。如何制作控制月份的控件方法如下得到頁(yè)面上的對(duì)象控件。 效果圖如下:showImg(https://segmentfault.com/img/bV0rKL?w=379&h=221); html代碼 - 2017/12 + 1234...

    canger 評(píng)論0 收藏0
  • js插件講解_javascript原生日歷插件講解

    摘要:效果圖如下代碼日第一個(gè)參數(shù)代表是否是今天的日歷,如果第一個(gè)參數(shù)為,還需要傳遞倆個(gè)參數(shù),年和月。如何制作控制月份的控件方法如下得到頁(yè)面上的對(duì)象控件。 效果圖如下:showImg(https://segmentfault.com/img/bV0rKL?w=379&h=221); html代碼 - 2017/12 + 1234...

    qpal 評(píng)論0 收藏0
  • 你的心事我全知曉——心情日記小程序丨實(shí)戰(zhàn)

    摘要:閑暇之余,聽媳婦嘀咕說要給她做一個(gè)能表達(dá)她每日心情的小程序,只能她在上面發(fā)東西。既然媳婦發(fā)話了,就花點(diǎn)心思做一個(gè)吧,因?yàn)闆]有圖,所有布局全靠自己瞎編,下面結(jié)合圖片和代碼跟大家講解下實(shí)現(xiàn)過程,內(nèi)容略長(zhǎng),感興趣的可以一覽。 閑暇之余,聽媳婦嘀咕說要給她做一個(gè)能表達(dá)她每日心情的小程序,只能她在上面發(fā)東西。既然媳婦發(fā)話了,就花點(diǎn)心思做一個(gè)吧,因?yàn)闆]有UI圖,所有布局全靠自己瞎編,下面結(jié)合圖片和...

    lylwyy2016 評(píng)論0 收藏0
  • 學(xué)習(xí)實(shí)踐 - 收藏集 - 掘金

    摘要:官網(wǎng)地址聊天機(jī)器人插件開發(fā)實(shí)例教程一創(chuàng)建插件在系統(tǒng)技巧使你的更加專業(yè)前端掘金一個(gè)幫你提升技巧的收藏集。我會(huì)簡(jiǎn)單基于的簡(jiǎn)潔視頻播放器組件前端掘金使用和實(shí)現(xiàn)購(gòu)物車場(chǎng)景前端掘金本文是上篇文章的序章,一直想有機(jī)會(huì)再次實(shí)踐下。 2道面試題:輸入U(xiǎn)RL按回車&HTTP2 - 掘金通過幾輪面試,我發(fā)現(xiàn)真正那種問答的技術(shù)面,寫一堆項(xiàng)目真不如去刷技術(shù)文章作用大,因此刷了一段時(shí)間的博客和掘金,整理下曾經(jīng)被...

    mikyou 評(píng)論0 收藏0
  • 庫(kù)&插件&框架&工具

    摘要:一些有用的一些有用的,包括轉(zhuǎn)換小箭頭三角形媒體查詢等中文指南是當(dāng)下最熱門的前端資源模塊化管理和打包工具。 nodejs 入門 nodejs 入門教程,大家可以在 github 上提交錯(cuò)誤 2016 年最好用的表單驗(yàn)證庫(kù) SMValidator.js 前端表單驗(yàn)證工具分享 淺談前端線上部署與運(yùn)維 說到前端部署,可能大多數(shù)前端工程師在工作中都是使用的公司現(xiàn)成的部署系統(tǒng),與SRE對(duì)接、一起完...

    Codeing_ls 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<