• 欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

  • jQuery倒計時(仿團購)

    系統 2301 0

    倒計時一般是用來表示未來某一時刻距現在時刻還剩多少時間。倒計時在WEB上應用非常廣泛,如考試系統倒計時,團購網站中的優惠活動倒計時等等。今天,我們來使用jQuery實現一個簡單的倒計時功能。

    本文以團購網站的倒計時為背景,我們知道,網站會給每個優惠活動(商品)定一個結束時間,也就是到期時間,但系統時間到達了結束時間,就意味著活動結束。因此,我們在HTML中就要定義活動的結束時間。

    ?

    HTML

            <ul class="prolist"> 
         <li><img src="images/p1.jpg" />簡約時尚皮帶男士手表一款69元<p class="endtime showtime" 
          value="1354365003"></p></li> 
         <li><img src="images/p2.jpg" />高強度無毒樹脂材料榨汁器24元<p class="endtime showtime" 
          value="1350748800"></p></li> 
         <li><img src="images/p3.jpg" />茶香番茄/烏梅/楊梅0.48元<p class="endtime showtime" 
          value="1346487780"></p></li> 
         <li><img src="images/p4.jpg" />沙灘鞋男士戶外涼鞋69元<p class="endtime showtime" 
          value="1367380800"></p></li> 
    </ul>
          

    ?

    上述html代碼中,我們建立了一個列表,用于展示活動名稱、圖片和倒計時,關鍵的是我們在每個活動定義了結束 時間:.endtime屬性 value的值,這個值是一串數字,表示自1970年1月1日以來的秒數,由后臺(PHP)生成。比如結束時間2013-05-01 12:00可以通過PHP轉換為1367380800秒,轉換后的秒數可以用來接下來的jQuery計算倒計時。

    ?

    CSS

    我們需要給頁面中的列表實際一個稍微好看點的外觀。

            .endtime{font-size:20px; font-family:"Microsoft Yahei"; color:#000} 
    .prolist{margin:10px auto} 
    .prolist li{float:left; width:320px; height:240px; margin:10px; font-size:14px;  
    position:relative} 
    .prolist li img{width:320px; height:198px;} 
    .showtime{position:absolute; top:174px; height:24px; line-height:24px;  
    background:#333; color:#fff; opacity:.6; display:none}
          

    ?

    保存,預覽頁面效果,可以看到一個排列整齊的活動列表。

    ?

    jQuery

            var serverTime =  * 1000; //服務器時間,毫秒數 
    $(function(){ 
        var dateTime = new Date(); 
        var difference = dateTime.getTime() - serverTime; //客戶端與服務器時間偏移量 
         
        setInterval(function(){ 
          $(".endtime").each(function(){ 
            var obj = $(this); 
            var endTime = new Date(parseInt(obj.attr('value')) * 1000); 
            var nowTime = new Date(); 
            var nMS=endTime.getTime() - nowTime.getTime() + difference; 
            var myD=Math.floor(nMS/(1000 * 60 * 60 * 24)); //天 
            var myH=Math.floor(nMS/(1000*60*60)) % 24; //小時 
            var myM=Math.floor(nMS/(1000*60)) % 60; //分鐘 
            var myS=Math.floor(nMS/1000) % 60; //秒 
            var myMS=Math.floor(nMS/100) % 10; //拆分秒 
            if(myD>= 0){ 
                var str = myD+"天"+myH+"小時"+myM+"分"+myS+"."+myMS+"秒"; 
            }else{ 
                var str = "已結束!";     
            } 
            obj.html(str); 
          }); 
        }, 100); //每個0.1秒執行一次 
    });
          

    ?

    我們首先獲取服務器時間,我們要將倒計時與服務器時間保持一致,這樣一來每個客戶端看到的倒計時是一樣的,我們通過計算客戶端與 服務器的時間偏移 量,來避免了因客戶機器時間與服務器時間不一致而引起的倒計時不同步的麻煩。當然這個服務器時間需要使用服務端語言來獲取,本文使用了PHP的 time()函數獲取的秒數,記得要乘以1000轉換成毫秒數。

    ?

    我們通過setInterval建立一個定時器,并且每個100毫秒執行一次setInterval里面的代碼。

    然后在定時器里,我們使用jQuery的each()方法,遍歷頁面中的列表,計算天、小時、分、秒。

    因為javascript的getTime()函數獲取的是毫秒數,所以計算過程中都要/1000,

    我們并不想在一個頁面將列表中所有的倒計時都顯示出來,而需要用戶將鼠標滑向列表中的圖片才顯示對應的倒計時,因此我們還需要加入以下輔助代碼:

            $(function(){ 
        $(".prolist li img").each(function(){ 
            var img = $(this); 
            img.hover(function(){ 
                img.next().show(); 
            },function(){ 
                img.next().hide(); 
            }); 
        }); 
    });
          

    ?

    猛擊這里看演示DEMO。

    來源于 helloweba.com http://www.helloweba.com/view-blog-182.html

    下載附件: countdown

    ?

    全代碼:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>jQuery倒計時</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript">
    var serverTime = <?php echo time();?> * 1000;
    $(function()
    {
        var str      = '';
        var dateTime = new Date();
        var difference = dateTime.getTime() - serverTime;
        
        setInterval(function()
        {
            $(".endtime").each(function()
            {
                var obj = $(this);
                var endTime = new Date(parseInt(obj.attr('value')) * 1000);
                var nowTime = new Date();
                var nMS=endTime.getTime() - nowTime.getTime() + difference;
                var myD=Math.floor(nMS/(1000 * 60 * 60 * 24));
                var myH=Math.floor(nMS/(1000*60*60)) % 24;
                var myM=Math.floor(nMS/(1000*60)) % 60;
                var myS=Math.floor(nMS/1000) % 60;
                var myMS=Math.floor(nMS/100) % 10;
                str = myD>= 0 ? myD+"天"+myH+"小時"+myM+"分"+myS+"."+myMS+"秒" : "已結束!"; 
                
                obj.html(str);
            });
        }, 100);
    });
    </script>
    </head>
    
    <body>
        <p>距離2015年05月18日還有</p>
        <div class="endtime" value="<?php echo strtotime('2015-05-18 00:00:00') ?>"></div>
        <p>距離2015年05月19日還有</p>
        <div class="endtime" value="<?php echo strtotime('2015-05-19 12:36:00') ?>"></div>
    </body>
    </html>
        

    ?

    無毫秒版:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>倒計時</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script>
        $(function(){ updateEndTime(); });
        
        //倒計時函數
        function updateEndTime()
        {
            var date = new Date();
            var time = date.getTime();  //當前時間距1970年1月1日之間的毫秒數
         
            $(".settime").each(function(i){
         
            var endDate =this.getAttribute("endTime"); //結束時間字符串
            //轉換為時間日期類型
            var endDate1 = eval('new Date(' + endDate.replace(/\d+(?=-[^-]+$)/, function (a) { return parseInt(a, 10) - 1; }).match(/\d+/g) + ')');
        
            var endTime = endDate1.getTime(); //結束時間毫秒數
         
            var lag = (endTime - time) / 1000; //當前時間和結束時間之間的秒數
            if(lag > 0)
            {
                var second = Math.floor(lag % 60);    
                var minite = Math.floor((lag / 60) % 60);
                var hour = Math.floor((lag / 3600) % 24);
                var day = Math.floor((lag / 3600) / 24);
                $(this).html(day+"天"+hour+"小時"+minite+"分"+second+"秒");
            }
            else $(this).html("團購已經結束啦!");
         });
         
         setTimeout("updateEndTime()",1000);
        }
    </script>
    </head>
    
    <body>
        <div class="settime" endTime="2015-5-12 12:1:1"></div>
        <div class="settime" endTime="2015-6-13 12:8:1"></div>
        <div class="settime" endTime="2013-5-12 12:1:1"></div>
    </body>
    </html>
        

    ?

    ikeepstudying.com

    ?

    jQuery倒計時(仿團購)


    更多文章、技術交流、商務合作、聯系博主

    微信掃碼或搜索:z360901061

    微信掃一掃加我為好友

    QQ號聯系: 360901061

    您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

    【本文對您有幫助就好】

    您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

    發表我的評論
    最新評論 總共0條評論
    主站蜘蛛池模板: 网站在线观看 | 亚洲色图综合图片 | 国产高清在线精品一区免费97 | 国产精品视频999 | 在线日韩精品视频 | 国产日产亚洲欧美综合另类 | 亚洲视频 中文字幕 | 99精品视频在线在线视频观看 | 久久两性视频 | 日韩五月天 | 欧美高清一区二区三区欧美 | 成人精品在线观看 | xxxxhd73国产| 成人欧美一区二区三区视频xxx | 日韩女性性生生活视频 | 色视频在线免费观看 | 亚洲九九夜夜 | 91精品视频在线播放 | 欧美精品一区二区三区蜜桃视频 | 排球少年第四季樱花动漫 | 婷婷激情网站 | 亚洲国产七七久久桃花 | 国产精品亚洲片在线观看不卡 | 老头天天吃我奶躁我午夜视频 | A片欧美乱妇高特黄AA片片 | 午夜私人影院粉色视频我要 | 国产在线网 | 亚洲自拍偷拍色图 | 色诱成人免费观看视频 | 欧美成人三级一区二区在线观看 | 成人免费精品 | 国产小视频在线高清播放 | 国产午夜精品一区二区三区嫩草 | 亚洲午夜精品国产电影在线观看 | 亚洲性69影院在线观看 | 草久久久 | 特一级毛片 | 国产成人精品福利站 | 毛片在线免费观看完整版 | 精品久久成人免费第三区 | 欧美高清不卡午夜精品免费视频 |