1. 程式人生 > >javaScript:倒計時設計

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 學習——給初學者的DemoShowCase設計分析

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 用戶

前端之JavaScriptJavaScript對象

nsh cal join方法 全部 格式 之間 star com match JavaScript(JS)之Javascript對象 簡介: 在JavaScript中除了null和undefined以外其他的數據類型都被定義成了對象,也可以用創建對象的方法定義變量,S

前端之JavaScriptJS之DOM對象一

介紹 close key 屬性 事件傳播 byname logs rst inpu js之DOM對象一 一、什麽是HTML DOM HTML Document Object Model(文檔對象模型) HTML DOM 定義了訪問和操作HTML文檔