可滑動日期的場地申請

来源:https://www.cnblogs.com/tenfly/archive/2019/10/18/11700580.html
-Advertisement-
Play Games

先上圖 ...


先上圖

 

 

 

  <header class="mui-bar mui-bar-nav">
        <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
        <h1 class="mui-title" id="site_name">預約情況</h1>
    </header>
    
    <div class="mui-content">
        <div id="selectTime"></div>
        
        <div id="weekDay"></div>

        <div id="siteInfo" style="width:100%"></div>

        <button class="btn">預約</button>
    </div>
    #selectTime {
            display:inline-block;
            width: 100%;
            height:40px;
            line-height: 40px;
            white-space: nowrap;
            box-shadow: 0 1px 2px rgba(0,0,0,.1);
            overflow-x: scroll;
            overflow-y: hidden;
            -webkit-backface-visibility: hidden;
            -webkit-perspective: 1000;
            -webkit-overflow-scrolling: touch;
            text-align: justify;
            padding: 0px 5px;
            box-sizing: border-box;
        }
        #selectTime a{
            text-decoration: none;
            margin-right: 10px;
            padding:5px;
        }
        #selectTime::-webkit-scrollbar{
            display: none;
        }
        #weekDay {
            width:40px;
            height:40px;
            border-radius:50%;
            margin:12px 0 0 12px;
            text-align:center;
            line-height:40px;
            background:rgba(255,128,128,1);
            color:white;
            box-shadow:3px 3px 5px black;
        }
        .weekDaySelected {
            font-size:20px;
            font-weight:bold;
            color:rgba(255,128,128,1);
        }
        table tr td {
            padding:10px;
        }
        .siteName {
            height:60px;
            background:#C2C2C2;
            border-radius:6px;
            text-align:center;
        }
        .time {
            width:40%;
            height:40px;
            background:rgba(255,128,172,1);
            border-radius:6px;
            text-align:center;
            color:white;
        }
        .reason {
            height:40px;
            background:rgba(113,184,255,1);
            border-radius:6px;
            text-align:right;
            color:white;
        }
       
        .a_fontColor {
            color:#999999;
        }    
        .btn {
            width:90%;
            height:50px;
            background:rgba(38,153,251,1);
            color:white;
            border-radius:6px;
            display:block;
            margin:50px auto;
            font-size:18px;  
        }
/**************************************************截取url參數**************************************************/

    var siteID = getUrlData().id;//場地類型
    var siteName = decodeURI(getUrlData().name);//場地名稱
    function getUrlData() {
        var url = window.location.search;  
        url = url.substring(1); 
        var dataObj = {};
        if (url.indexOf('&') > -1) {
            url = url.split('&');
            for (var i = 0; i < url.length; i++) {
                var arr = url[i].split('=');
                dataObj[arr[0]] = arr[1];
            }
        }
        else {
            url = url.split('=');
            dataObj[url[0]] = url[1];
        }
        return dataObj;
    }

    /**************************************************初始化載入數據**************************************************/
    
    var initTime = new Date();//時間
    var client_width = window.innerWidth || document.documentElement.clientinnerWidth || document.body.clientinnerWidth;//可視界面寬度

    get_month_day();//載入日期
    getSite();//載入對應日期數據
   
    //載入日期
    function get_month_day() {
        var year = initTime.getFullYear();
        var month = initTime.getMonth() + 1;
        var day = initTime.getDate();
        
        $("#selectTime").append('<a onclick="goPre()">&lt&ltGO</a>');
        for (var i = 1; i <= getDaysInMonth(year, month) ; i++) {

            var newDate = new Date().setDate(i - 1);
            var weekDay = new Date(newDate).getDay();
            if (i == day)
                var li = '<a class="weekDaySelected">' + month + '-' + i + '</a>';
            else
                var li = '<a class="a_fontColor" onclick="a_click(this)">' + month + '-' + i + '</a>';
            $("#selectTime").append(li);
        }
        //計算,使初始化載入的日期在中間位置
        var width = $(".weekDaySelected").width(); //a標簽(日期)所占寬度
        var marginLeft = $(".weekDaySelected").offset().left; //a標簽(日期)距離視窗左邊的距離
        $("#selectTime").scrollLeft(marginLeft - client_width / 2 + width / 2);

        $("#selectTime").append('<a onclick="goNext()">GO&gt&gt</a>');
    }

    //載入數據
    function getSite() {
        
        var year = initTime.getFullYear();
        var month = initTime.getMonth() + 1 < 10 ? "0" + (initTime.getMonth() + 1) : initTime.getMonth() + 1;
        var day = initTime.getDate() < 10 ? "0" + initTime.getDate() : initTime.getDate();
        var STime = year + "-" + month + "-" + day + " 00:00:00";
        var ETime = year + "-" + month + "-" + day + " 23:59:59";
        var week_day = initTime.getDay();

        /******************************************
            console.log("當前時間:" + initTime);
            console.log("當前年份:" + year);
            console.log("當前月份:" + month);
            console.log("當前天數:" + day);
            console.log("當前周幾:" + week_day);
            console.log("開始時間:" + STime);
            console.log("結束時間:" + ETime);
        ******************************************/

        //當前選中日期為星期幾
        switch (week_day) {
            case 0: week_day = "日"; break;
            case 1: week_day = "一"; break;
            case 2: week_day = "二"; break;
            case 3: week_day = "三"; break;
            case 4: week_day = "四"; break;
            case 5: week_day = "五"; break;
            case 6: week_day = "六"; break;
        }
        $("#weekDay").html(week_day);

        //當前選中日期數據
        $.ajax({
            url: config.url() + "/WorkCenter/ajax/getdata.ashx?type=siteApplication&r=" + Math.random(),
            dataType: 'json',
            type: 'post',
            data: { siteID: siteID, STime: STime, ETime: ETime },//場地id,開始時間,結束時間
            xhrFields: {
                withCredentials: true
            },
            success: function (res) {
                var table = '<table width="100%" style="border-collapse:separate; border-spacing:15px;" id="siteList">' +
                                    '<tr><td colspan="2" class="siteName"></td></tr>' +
                                '</table>';
                $("#siteInfo").append(table);
                if (res.length > 0) {
                    for (var i = 0; i < res.length; i++) {
                        var sHou = new Date(res[i].StartTime).getHours() < 10 ? "0" + new Date(res[i].StartTime).getHours() : new Date(res[i].StartTime).getHours();
                        var sMin = new Date(res[i].StartTime).getMinutes() < 10 ? "0" + new Date(res[i].StartTime).getMinutes() : new Date(res[i].StartTime).getMinutes();
                        var startTime = sHou + ":" + sMin;
                        var eHou = new Date(res[i].EndTime).getHours() < 10 ? "0" + new Date(res[i].EndTime).getHours() : new Date(res[i].EndTime).getHours();
                        var eMin = new Date(res[i].EndTime).getMinutes() < 10 ? "0" + new Date(res[i].EndTime).getMinutes() : new Date(res[i].EndTime).getMinutes();
                        var endTime = eHou + ":" + eMin;
                        var row = '<tr><td class="time">' + startTime + '-' + endTime + '</td><td class="reason">' + res[i].SiteScheduleName + '</td></tr>';
                        $("#siteList").append(row);
                    }
                    $(".siteName").html(siteName);
                }
                else {
                    $(".siteName").html("暫無預約");
                } 
            }
        })
    }

    /**************************************************調用方法**************************************************/
    
    //計算本月天數
    function getDaysInMonth(year, month) {
        //本來標準時間的month應該為當前month-1,這裡就使用當前month作為標準時間的month
        month = parseInt(month);
        //轉化為標準時間後為下一個月的數據,設置day為0表示上個月最後一天,這樣就切換到了所求月份的最後一天
        var temp = new Date(year, month, 0);
        return temp.getDate();
    }

    //載入上個月數據
    function goPre() {
        initTime = new Date(initTime.setDate(1));
        initTime = new Date(initTime.setMonth(initTime.getMonth() - 1));
        $("#siteInfo").hide().show(500);
        $("#selectTime").empty();
        $("#siteInfo").empty();
        get_month_day();//載入日期
        getSite();//載入對應日期數據
       
    }
    //載入下個月數據
    function goNext() {
        initTime = new Date(initTime.setDate(1));
        initTime = new Date(initTime.setMonth(initTime.getMonth() + 1));
        $("#siteInfo").hide().show(500);
        $("#selectTime").empty();
        $("#siteInfo").empty();
        get_month_day();//載入日期
        getSite();//載入對應日期數據
       
    }
    //本月切換日期
    //選中後不再觸發點擊事件
    function a_click(obj) {
        var selectTime = $(obj).text();
        var Time = initTime.getFullYear() + "-" + selectTime;
        initTime = new Date(Time);
        //為上一個選中日期添加選中事件,移除現在選中日期的預設樣式並添加選中樣式,為上一個選中日期添加預設樣式
        $("#selectTime .weekDaySelected").attr("onclick", "a_click(this);");
        $("#selectTime .weekDaySelected").removeClass("weekDaySelected").addClass("a_fontColor");
        $(obj).removeClass("a_fontColor").addClass("weekDaySelected");
        //載入數據的時候,頁面會閃動,用動畫效果來平滑過渡
        $("#siteInfo").hide().show(500);
        $("#siteInfo").empty();
        getSite();
        //為避免事件中途因意外停止,在點擊事件完成後再移除現在選中日期的點擊事件
        $(obj).removeAttr("onclick");
    }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Redis支持的鍵值數據類型如下: 字元串類型 散列類型 列表類型 集合類型 有序集合類型 一、字元串類型 字元串類型是Redis中最基本的數據類型,它能存儲任何形式的字元串,包括二進位數據。一個字元串類型鍵允許存儲的數據最大容量是512MB. 1、字元串常用命令 1.1 賦值與取值 SET key ...
  • 實驗日期: 2019 年 09 月 24 日 實驗報告日期: 2019 年 09 月 28 日 一、 實驗目的 熟悉oracle環境; 熟練掌握和使用PL-SQL建立資料庫基本表。 使用PL/SQL developer操作資料庫。 熟練掌握SQL 建立關係,及增刪改數據。 二、 實驗環境 Windo ...
  • 1.備份: 2.恢復: 3.實例: ...
  • 近期內手裡收到一些朋友發來的簡歷,讓我初步把把關。在看了多份簡歷之後,想說一些話,給大家講講我對於簡歷的看法。 簡歷要突出重點,要精準無誤,要言之有物,要有的放矢。 如何突出重點,校園招聘可以寫一些校園獲獎情況,你畢業了多年應聘,簡歷上寫個大學長跑一等獎,是要突出自己不怕加班,體質好?這個大學生活內 ...
  • 谷歌訪問助手安裝教程參考:https://www.cnblogs.com/waiwai14/p/11697371.html 谷歌訪問助手下載地址:https://pan.baidu.com/s/1YHjj8La5sC2QLhQ8Aga-sQ 由於谷歌中國的退出,導致本來可以訪問到的官網無法訪問或者無 ...
  • 問題及分析 今天做項目的時候,執行pod update報瞭如下錯誤信息: /usr/local/lib/ruby/gems/2.4.0/gems/cocoapods 1.5.3/lib/cocoapods/command.rb:118:in git version sudo xcode select ...
  • 終於學JavaScript了! 數組的相關參數 數組 刪除第一個元素, 刪除最後一個元素,返回的都是刪除的元素, 在開頭增加一個元素, 在結尾增加元素, 用於刪除和修改, 用於切片. 數據類型轉換 一元的 + 運算符可用於把變數轉換為數字:如果無法轉換變數,則仍會成為數字,但是值為 NaN(Not ...
  • 先上圖 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...