javaScript:倒計時設計
一,倒計時設計
以下是試用的倒計時範例,有三個時間點:試用申請開始時間,試用申請結束時間,試用報告提交截止時間,要根據這三個時間點進入不同的倒計時階段
HTML:
<span style="font-size:18px;"><span style="font-size:18px;"><c:if test="${!empty tryoutArray}"> <div class="area-5" id="area-5"> <div class="title-div"><img src="" height="66" width="1120"/></div> <div class="area-main"> <c:forEach items="${tryoutArray}" var="o"> <c:choose> <c:when test="${o.get('status') == 1}"> <c:set var="btnClass" value="btn-1"/> <c:set var="btnValue" value="立即申請"/> </c:when> <c:when test="${o.get('status') == 2}"> <c:set var="btnClass" value="btn-0"/> <c:set var="btnValue" value="即將開始"/> </c:when> <c:when test="${o.get('status') == 4}"> <c:set var="btnClass" value="btn-2"/> <c:set var="btnValue" value="體驗中"/> </c:when> </c:choose> <div class="pic-txt pic-txta"> <div class="img-area"> <a href="${o.get('tryoutUrl')}" target="_blank"> <img src="${o.get('picUrl')}" width="680" height="340" alt="${o.get('name')}"> </a> <!-- 倒計時 --> <div class="time"> <div class="count-down count-downa count-down-fir" data-state="${o.get('status')}" data-startDate="${o.get('startDate')}" data-endDate="${o.get('endDate')}"></div> <div class="count-down count-downa count-down-sec" data-state="${o.get('status')}" data-startDate="${o.get('endDate')}" data-endDate="${o.get('reportTime')}"></div> </div> <span class="end-time"> </span> </div> <div class="txt-area"> <dl> <dt> <a href="${o.get('tryoutUrl')}" target="_blank">${o.get("name")}</a> </dt> <dd> <div class="price"> 價值:<em>¥</em><em class="fs-24">${o.get("productPrice")}</em> </div> <div class="provide"> 試用名額:<em class="fs-24 greenq-font">${o.get("tryNum")}</em>名 </div> <div class="num"> 已申請:<em class="fs-24 greenq-font">${o.get("applyNum")}</em>人 </div> </dd> </dl> <p class="try-time">活動時間:${o.get("startDate")}--${o.get("endDate")}</p> <a href="${o.get('tryoutUrl')}" target="_blank" class="btn ${btnClass}">${btnValue}</a> </div> </div> </c:forEach> </div> </div> </c:if> </span> </span>
javaScript:
<span style="font-size:18px;"><!--倒計時js --> <script src="http://js.3conline.com/min/temp/v1/dpl-$.countDown.js"></script> <script type="text/javascript"> var itemLen = $(".count-down").length; for ( var i = 0; i < itemLen; i++) { var itemT = $(".count-down").eq(i); var data_state = itemT.attr("data-state"); countFunc_run(itemT, i, data_state, '${now}'); } //倒計時 function countFunc_run(id, k, state, timeStamp){ var btn = $(id).parent().parent().parent().find('.btn');//此處運用jQuery抓取html元素的方法獲取按鈕位置 $(id).countdown({ rootTime: timeStamp, // d:h:m:s(預設)、h:m:s、m:s willbe:{ format : function(time) { if($(id).hasClass('count-down-fir')){ var timeText = (state == 2) ? "距申請開始還有" : "距申請結束還有"; var str = "<span class='icon-count'></span>" + timeText + " : <em class='count-days'>" + time.day + "</em>天<em class='count-hours'>" + time.hour + "</em>時<em class='count-minutes'>" + time.min + "</em>分<em class='count-seconds'>" + time.sec + "</em>秒"; $(id).html(str); $(id).show(); } }, callback:function() { if($(id).hasClass('count-down-fir')){ $(btn).html("即將開始").addClass("btn-0"); } } }, start:{ format : function(time) {if($(id).hasClass('count-down-fir')){ timeText = "距離申請結束還有"; var str = "<span class='icon-count'></span>" + timeText + " : <em class='count-days'>" + time.day + "</em>天<em class='count-hours'>" + time.hour + "</em>時<em class='count-minutes'>" + time.min + "</em>分<em class='count-seconds'>" + time.sec + "</em>秒"; $(id).html(str); $(id).show(); } }, callback:function() { if($(id).hasClass('count-down-fir')){ $(btn).html("立即申請").addClass("btn-1"); $(btn).html("立即申請")[0].className = "btn btn-1"; } if($(id).hasClass('count-down-sec')){ $(id).hide();//隱藏倒計時功能 $(btn).html("體驗中").addClass("btn-2"); } } }, end:{ format : function(time) { }, callback : function() { if($(id).hasClass('count-down-sec')){ var parent = $(id).parent().parent().parent(); $(parent).hide(); } if($(id).hasClass('count-down-fir')){ $(id).hide(); } } } }) } </script></span> <!--end -->
如圖為當前時間<試用申請開始時間,即將進入試用申請階段,此時倒計時為距申請開始還有:xx天xx時xx分xx秒;試用申請開始時間<當前時間<試用申請結束時間時,倒計時為距申請結束還有:xx天xx時xx分xx秒;即將開始按鈕變為立即申請;同理,試用申請結束時間<當前時間<報告提交截止時間,倒計時功能隱藏,立即申請按鈕變為體驗中
相關推薦
javaScript:倒計時設計
做為後臺開發人員,往往對前端技術瞭解甚少,開發過程中遇到比較棘手的前端問題經常會捉襟見肘,但勤能補拙,希望通過一點一滴的積累能讓個人的前端水平有所提升吧 一,倒計時設計 以下是試用的倒計時範例,有三個時間點:試用申請開始時間,試用申請結束時間,試
javascript 體驗倒計時:距離國慶還有多長時間
get style var enter javascrip type utf fun ID 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset
以小見大:如何設計註冊登錄頁?
銀行 豆瓣 book 編輯 並且 長按 提高 智能 智能手機 一個合格的註冊登錄頁面,應該是具有清晰的操作流程。 朋友說某個APP不錯,下載後正準備好好體驗一番,卻被糟糕的註冊登錄頁面弄的精疲力竭,無奈最終只能放棄。註冊登錄流程能讓用戶扭頭就走,也能讓產品獲得新用戶的芳
【開源】OSharp框架學習系列(1):總體設計及系列導航
正是 html 組織 內聚性 權限 是什麽 enc 3-0 分發 OSharp是什麽? OSharp是個快速開發框架,但不是一個大而全的包羅萬象的框架,嚴格的說,OSharp中什麽都沒有實現。與其他大而全的框架最大的不同點,就是OSharp只做抽象封裝,不做實現。依賴註
Javascript 5種設計風格
diff all and hat col anim eat cti use 1.過程式的程序設計 <script> /*Start and Stop animations using functions.*/ function startAnimation()
JavaScript 的 API 設計原則
rst 執行 creat 錯誤 htm ora 大小 閱讀 fontsize 前言 本篇博文來自一次公司內部的前端分享,從多個方面討論了在設計接口時的原則,總共包含了七個大塊。系鹵煮自己總結的一些經驗教訓。同時也參考了一些文章,地址會在後面貼出來。很難做到詳盡充實,如果
《.NET 設計規範》第 5 章:成員設計
支持 派生 精度 tex 邏輯 最好 功能 一個 覆蓋 《.NET 設計規範》第 5 章:成員設計 5.1 成員設計的通用規範 要盡量用描述性的參數名來說明在較短的重載中使用的默認值。 避免在重載中隨意地改變參數的名字。如果兩個重載中的某個參數表示相同的輸入,
009.實戰案例::產品設計實例精解
產品設計 技術 src logs 設計 實戰案例 gif jpg alt 1.實戰案例1 2.實戰案例2 3.實戰案例3 4.實戰案例4 5.實戰案例5 6.實戰案例6 7.實戰案例7 8.實戰案例8 9.實戰案例9
框架基礎:ajax設計方案(六)--- 全局配置、請求格式拓展和優化、請求二進制類型、瀏覽器錯誤搜集以及npm打包發布
rri seve win 最大 regexp isempty lee 出現問題 hub 距離上一次博客大概好多好多時間了,感覺再不搞點東西出來,感覺就廢了的感覺。這段時間回老家學習駕照,修養,然後7月底來上海求職(面了4家,拿了3家office),然後入職同程旅遊,項目趕進
通訊框架 T-io 學習——給初學者的Demo:ShowCase設計分析
char bst row 重復 框架 enc 簡單介紹 packet 處理器 前言 最近閑暇時間研究Springboot,正好需要用到即時通訊部分了,雖然springboot 有websocket,但是我還是看中了 t-io框架。看了部分源代碼和示例,先把hell
javascript的倒計時功能中newData().getTime()在iOS下會報錯問題解決
clas span 知識 http get log 不能 修改 國外 找了半天問題啊!!! 我使用了mobiscroll.js這個插件 ,但是ios手機一直報錯! 在做移動端時間轉化為時間戳時,遇到了一個問題,安卓手機上訪問時,能拿到時間戳,從而正確轉換時間,而在iOS上缺
我的設計模式:簡單設計模式
單例模式 代理模式 策略模式 門面模式 適配器模式 1.例子模式單例模式 Singleton Patternonly one 原則問題:實例只有一個方案:only(私有化構造) one(提供一個入口) 方案的問題:入口的線程問題 多例模式 Multition Pattern有上限多例
深入淺析JavaScript的API設計原則(轉載)
query 定義 檢測 缺省值 fine spl contex index cin 一、接口的流暢性 好的接口是流暢易懂的,他主要體現如下幾個方面: 1.簡單 操作某個元素的css屬性,下面是原生的方法: ? 1 document.querySelect
javascript:沒有定義的變量和沒有定義的屬性
erro function load span bsp post 執行 spa nload 1. 沒有定義的變量 window.onload = function() { alert(a); // 報錯: Uncaught Refe
javascript:變量的作用域
class erro undefine 變量的作用域 error: cau script ren function window.onload = function (){ // 1) 在if或else代碼塊中聲明的變量,在代碼塊的外面也可以取到
你不知道的Javascript:有趣的setTimeout
找到 讓我 inf 現在 重復 near rem tput 顯示 你不知道的Javascript:有趣的setTimeout 有時候,小小的細節往往隱藏著大大的智慧今天在回顧JavaScript進階用法的時候,發現一個有趣的問題,話不多說,先上代碼:for(var j=0
JavaScript:事件對象Event和冒泡
add 方式 p值 器) 機制 效率 學習 roi androi 本文最初發表於博客園,並在GitHub上持續更新前端的系列文章。歡迎在GitHub上關註我,一起入門和進階前端。 以下是正文。 綁定事件的兩種方式 我們在上一篇文章 DOM操作詳解 中已經講過事件的概
2、Django實戰第2天:app設計
搜索路徑 enc 註冊 image nbsp courses http pps 令行 app設計:五大模塊 users 用戶管理 courses 課程管理 organization 機構和教師管理 operation 用戶
前端之JavaScript:JavaScript對象
nsh cal join方法 全部 格式 之間 star com match JavaScript(JS)之Javascript對象 簡介: 在JavaScript中除了null和undefined以外其他的數據類型都被定義成了對象,也可以用創建對象的方法定義變量,S
前端之JavaScript:JS之DOM對象一
介紹 close key 屬性 事件傳播 byname logs rst inpu js之DOM對象一 一、什麽是HTML DOM HTML Document Object Model(文檔對象模型) HTML DOM 定義了訪問和操作HTML文檔