dat.gui的日历输入

时间:2016-09-19 15:40:33

标签: dat.gui

有没有办法为dat.GUI设置日历输入?如果可能的话,我希望能够使用UI输入日期。我的工作目前是以文本形式输入日期,但我更喜欢使用某种类型的日历。谢谢!

1 个答案:

答案 0 :(得分:0)

我知道这个问题是在某个时候问的,但是尚未得到回答。出于类似的需求,我创建了此codepen,以演示jquery-simple-datetimepickerdat.GUI的集成。相关部分/逻辑如下:

    $(function(){

        //Create dat.gui instance
        var gui  = new dat.GUI({closeOnTop: true, width:450});

        var calendarFolder = gui.addFolder("Calendar");

        //Add calendarDate to dat.GUI
        var dateController = calendarFolder.add({Date: ""}, "Date");
        calendarFolder.open();  


        //Append Date Picker to calendarDate and show it.   
        var guiInput = $(calendarFolder.domElement).find("input").eq(0);

        //Create event handler to update the dat.GUI input element when calendar is hidden 
        var datePickerOptions = {"onHide": function(handler){ fnSetGuiDate(); } }; 

        //Add the calendar to the dat.GUI input element and immediately show it for demonstration 
        guiInput.appendDtpicker(datePickerOptions).handleDtpicker('show');

        //Initialize the dat.GUI input value
        fnSetGuiDate();

        function fnSetGuiDate() {
            var date = guiInput.handleDtpicker('getDate');
            var strDate =   date.getFullYear() + "-" + 
                            fnFormat(date.getMonth() + 1) + "-" + 
                            fnFormat(date.getDate()) + " " + 
                            fnFormat(date.getHours()) + ":" + 
                            fnFormat(date.getMinutes());

            dateController.setValue(strDate);

            function fnFormat(mnthOrDate) {
                return mnthOrDate < 10 ? "0" + mnthOrDate : mnthOrDate;
            }

        }
    });