JS制作支付倒计时页面

这里写图片描述(图一)
这里写图片描述(图二)
这里写图片描述(图三)
这里写图片描述(图四)

实现目标

一,页面在图一时开始进行倒计时(可以点击取消订单按钮,支付页面消失)。

二,倒计时完毕,出现删除订单。

三,单击删除订单,弹出弹框,询问是否要真正删除订单。

四,单击确定,即可删除订单。

如上图所示效果展示,这里给出所有的源代码(如需运行,只需要修改HTML文件中引入的CSS路径和JS路径即可).

这个页面其实是自己业余时间,写的东西。
但是里面涉及到,倒计时弹框,以及字体图(可以参照“如何制作字体图”章节)的相关知识。

这里分享出来,希望大家能从中学到自己想要的知识。
代码很丑,但是基本效果都已经实现。

相关注释,会在代码后注释起来,方便参考

JS代码

order_detail.js

    /**
         * Created by mayouchen on 2016/10/20.
         */
        $(function () {                               //加载完DOM的只执行函数   
            var intDiff = parseInt(60);               //倒计时总秒数量
            function timer(intDiff) {
                window.setInterval(function () {
                    var day = 0,
                        hour = 0,
                        minute = 0,
                        second = 0;//时间默认值
                    if (intDiff > 0) {
                       //计算相关的天,小时,还有分钟,以及秒
               day = Math.floor(intDiff / (60 * 60 * 24));    
              hour = Math.floor(intDiff / (60 * 60)) - (day * 24);
             minute = Math.floor(intDiff / 60) - (day * 24 * 60) - (hour * 60);
          second = Math.floor(intDiff) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
                    }
                    if (minute <= 9) minute = '0' + minute;
                    if (second <= 9) second = '0' + second;
                    $('#day_show').html(day + "天");
                    $('#hour_show').html('<s id="h"></s>' + hour + '时');
                    $('#minute_show').html('<s></s>' + minute + '分');
                    $('#second_show').html('<s></s>' + second + '秒');
                    intDiff--;
                }, 1000);
        //循环函数,是时钟运动起来
        setInterval(function(){
            if($('#minute_show').text() =='00分' &&  $('#second_show').text() =='00秒'){
                $('.pay-immediately-count').remove();
                $('.cancle-order').remove();
                $('.del-order').show();
                clearInterval();
            }
        },1000)

       //下面三个是跳转链接,本来是在node工程里面的路由配置的,这里大家可以换成自己的链接

        $("#dingdan").click(function () {
            location.href = "/hotel/order"; //这里跳转的是路由的路径
        });
        $("#mengdian").click(function () {
            location.href = "/hotel"; //这里跳转的是路由的路径
        });
        $(".set-detail").click(function () {
            location.href = "/hotel/detail"; //这里跳转的是路由的路径
        });

      //这里都是一些单击事件

       /* 点击删除按钮*/
        $('.del-order').click(function(){
            $(".arrow_mask").show();
            $(".cancel-order-dialog").show()
        })
       /* 弹框的设置---取消键*/
        $(".cancle-order-btn").click(function(){
            $(".cancel-order-dialog").hide();
            $(".arrow_mask").hide();
        });
        /* 弹框的设置---确定键*/
        $(".certain-order").click(function(){
            $(".section-first").remove();
            $(".cancel-order-dialog").remove();
            $(".arrow_mask").remove();
            $(".footer").css({"position":"fixed"});
        });
        /* 弹框的设置---取消键*/
        $(".cancle-order").click(function(){
            $(".section-first").remove();
            $(".footer").css({"position":"fixed"});
        });

    }
       //执行上面的函数
            $(function () {
                timer(intDiff);
            });

        });

HTML页面

order_detail.html

<!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta charset="utf-8">
    <meta content="" name="description">
    <meta content="" name="keywords">
    <meta content="eric.wu" name="author">
    <meta content="application/xhtml+xml;charset=UTF-8" http-equiv="Content-Type">
    <meta property="qc:admins" />
    <meta content="telephone=no, address=no" name="format-detection">

     <!--添加title前面的图片(这里换成你自己图片的路径即可)-->  
    <link rel="shortcut icon" href="/images/hotel/zc.png" type="image/x-icon" /> 

     <!--页面初始化的样子(这个文件可以页面做初始化)-->
     <link href="/css/hotel/order_detail.css" rel="stylesheet" type="text/css"  />

     <!--引入JQ文件-->
    <script type="text/javascript" src="/javascripts/lib-cmd/jquery.min2.js"></script>

    <!--引入页面操作的JS文件-->    
        </head>
        <body>
        <div class="section-first">
                <div class="date-head">
                    <div  class="date-head-statue">
                        <ul class="date-head-state">
                            <li>
                                <div class="reservation-status">
                                    <div>订房状态</div>
                                    <div>2015-6-26</div>
                                    <div> 11:14:17</div>
                                </div>
                            </li>
                            <div class="space-underline"></div>
                            <li>
                                <div class="order-number">
                                    <div>订单号: </div>
                                    <div>A23456623</div>
                                </div>
                            </li>
                            <li>
                                <div class="total-order">
                                    <div>订单总额: </div>
                                    <div>¥98</div>
                                </div>
                            </li>
                            <li>
                                <div class="order-status">
                                    <div>订单状态:</div>
                                    <div>处理中</div>
                                </div>
                            </li>
                            <li>
                                <div class="payment-status">
                                    <div>支付状态:</div>
                                    <div>线上支付 </div>
                                    <div>未支付</div>
                                </div>
                            </li>

               <li class="cancel-order">
                    <div class="pay-immediately">
                        <div class="pay-immediately-count">
                               <div class="pay-immediately-count-num">立即支付
                                   <div class="time-item">
                                       还剩
                                       <!--<span id="day_show">0天</span>
                                       <strong id="hour_show">0时</strong>-->
                                       <span id="minute_show">0分</span>
                                       <span id="second_show">0秒</span>
                                   </div>
                               </div>
                        </div>
                        <div class="cancle-order">取消订单</div>
                        <span class="del-order">删除订单</span>
                    </div>

                        </ul>
                    </div>
                </div>
        </div>
        <div class="wide-space_line">
            <div>入住信息</div>
        </div>
        <div class="check-information">
            <ul>
                <li>
                    <div class="check-in-time">
                        <div>入住时间:</div>
                        <div>6月25日-6月26日  </div>
                        <div>共1晚 </div>
                    </div>
                </li>
                <li>
                    <div class="room-type">
                        <div>房间类型:</div>
                        <div>标准间</div>
                        <div>1间</div>
                    </div>
                </li>
                <li>
                    <div class="booking-person">
                        <div>预订人:</div>
                        <div>马优晨</div>
                        <div>1500070188</div>
                    </div>
                </li>
                <li>
                    <div class="special-requirements">
                        <div>特殊要求:</div>
                        <div>房间整洁干净</div>
                    </div>
                </li>
            </ul>
        </div>
        <div class="wide-space_line">
            <div>酒店信息</div>
        </div>
    <div>
        <ul class="section-body">
            <div class="set-detail">
                <div>
                    <a href=""><i class="font-name-icon first-icon"></i></a>
                    <span class="set-text-detail">国际商务酒店(上海长江南路店)</span>
                </div>
                <div></div>
                <div class="set-text-button">酒店详情</div>
                <div class="greater-number"></div>
            </div>
            <div class="space-underline"></div>
            <div class="set-detail-number">
                <div><a href=""><i class="font-name-icon first-icon"></i></a></div>
                <div class="set-text-detail2"><a href="tel:120" class="aa">021-7893829878</a></div>
                <div class="set-text-button"><a href="tel:120" class="bb">联系我 </a></div>
                <div class="greater-number"></div>
            </div>
            <div class="space-underline"></div>
            <div class="set-detail-address">
                <div><a href=""><i class="font-name-icon first-icon"></i></a></div>
                <div class="set-text-detail set-text-shut">宝山区逸仙路2816号华滋奔腾大厦A栋14楼</div>
                <div class="set-text-button">地图</div>
                <div class="greater-number"></div>
            </div>
            <!--<div class="space-underline"></div>-->
        </ul>
    </div>

        <div class="arrow_mask"></div>
        <!--取消的弹框-->
        <div class="cancel-order-dialog">
            <div class="cancel-dialog">
                <div>你确定要取消该订单吗?</div>
                <div class="space-underline2"></div>
                <div class="shuxian"></div>
                <div class="cancel-dialog-btn">
                    <div class="cancle-order-btn">取消</div>
                    <div class="certain-order">确定</div>
                </div>
            </div>
        </div>

        <div>
            <div class="footer">
                <div id="mengdian"><i class="font-name-icon"></i><span>门店</span></div>
                <div id="dingdan"><i class="font-name-icon"></i><span>我的订单</span><span class="greater-number-bottom"></span><span class="ellipse">12</span></div>
            </div>
        </div>
        </body>
        </html>

CSS代码

order_detail.css

body{
        background: #eeeeee;
    }
    .date-head{
        width:100%;
    }
    .date-head-statue{
        width:100%;
        font-size:14px;
        border-radius:4px;
        padding-left:15px;
        padding-right:15px;
    }
    .date-head-state{
        background: #fff;
        height: 240px;
        border-radius: 10px;
        margin-top: 16px;
        padding-top: 14px;
        position: relative;
    }
    /*.set-detail-number a{
        color: #333333;
    }*/
    /*.section-body .set-text-button .set-text-button a{
        color: #1c94f7;
    }*/
    .reservation-status,.order-number,.total-order,.order-status,.payment-status,.pay-immediately,.pay-immediately-count{
        display: -moz-box;
        -moz-box-orient: horizontal;
        display: -webkit-box;
        -webkit-box-orient: horizontal;
    }
    .order-number,.total-order,.order-status,.payment-status{
        margin-top: 10px;
    }
    .pay-immediately{
        position: absolute;
        bottom: 0px;
        width: 100%;
        /* margin-top: 16px; */
    }
    .space-underline {
          border-bottom: 1px solid #999999;
          -webkit-border-image: url(../../images/hotel/border.gif) 1 stretch;
          /*margin-top: 12px;*/
          -webkit-transform:scaleY(0.2);
          -moz-transform:scaleY(0.2);
          -o-transform:scaleY(0.2);
      }
    .reservation-status div:nth-of-type(2){
        position: absolute;
        right: 0px;
        margin-right: 90px;
        color: #999999;
    }
    .reservation-status div:nth-of-type(3){
        position: absolute;
        right: 0px;
        margin-right: 26px;
        color: #999999;
    }
    .order-number div:nth-of-type(2),.total-order div:nth-of-type(2),.order-status div:nth-of-type(2),.payment-status div:nth-of-type(2) {
        position: absolute;
        left: 0px;
        margin-left: 130px;
    }

    .reservation-status,.order-number ,.total-order ,.order-status,.payment-status{
        /*position: absolute;
        left: 0px;
        margin-left: 130px;*/
        padding-left: 12px;
    }
    .payment-status div:nth-of-type(3) {
        position: absolute;
        left: 0px;
        margin-left: 200px;
        color: #1c94f7;
    }
    .cancel-order{
        width: 100%;
    }
    .pay-immediately div:nth-of-type(1){
        width: 70%;
        background: #1c94f7;
        height: 40px;
        line-height: 40px;
        text-align: center;
        border-radius: 0px 0px 0px 10px;
        color: #ffffff;
        paddingleft: 20p;
        padding-left: 20px;
        white-space: nowrap;
    }
    .pay-immediately div:nth-of-type(2){
        width: 30%;
        height: 40px;
        background: #097bd9;
        boder-radus: 5px;
        /* border-radius: 5px; */
        line-height: 40px;
        text-align: center;
        border-radius: 0px 0px 10px 0px;
        color: #ffffff;
    }
    .wide-space_line {
        height: 30px;
        width: 100%;
        background: #eeeeee;
        text-align: center;
    }
    .wide-space_line div:nth-of-type(1) {
        margin-top: 7px;
        position: absolute;
        left: 0px;
        margin-left: 16px;
        font-size: 15px;
        color: #999999;
    }
    .total-order div:nth-of-type(2){
        color:#ff5e38;
        font-size: 16px;
        font-weight: bold;
    }
    .order-status div:nth-of-type(2){
        color: #1c94f7;
    }
    .check-in-time,.room-type,.booking-person,.special-requirements{
        display: -moz-box;
        -moz-box-orient: horizontal;
        display: -webkit-box;
        -webkit-box-orient: horizontal;
        margin-left: 16px;
    }
    .check-in-time div:nth-of-type(1),.room-type div:nth-of-type(1),.booking-person div:nth-of-type(1),.special-requirements div:nth-of-type(1){
        color: #999999;
    }
    .check-in-time div:nth-of-type(2),.room-type div:nth-of-type(2),.booking-person div:nth-of-type(2),.special-requirements div:nth-of-type(2){
        color: #333;
        position: absolute;
        left: 0px;
        margin-left: 98px;
    }
    /*.check-in-time div:nth-of-type(3),.room-type div:nth-of-type(3),.booking-person div:nth-of-type(3){
        color: #333;
        position: absolute;
        left: 0px;
        margin-left: 60px;
    }*/
    .check-in-time div:nth-of-type(3){
        color: #333;
        position: absolute;
        left: 0px;
        margin-left: 222px;
    }
    .room-type div:nth-of-type(3){
        color: #333;
        position: absolute;
        left: 0px;
        margin-left: 152px;
    }
    .booking-person div:nth-of-type(3){
        color: #333;
        position: absolute;
        left: 0px;
        margin-left: 152px;
    }
    .check-information{
        background: #ffffff;
        height: 128px;
    }
    .check-in-time{
        padding-top: 10px;
        margin-top: 10px;
    }
    .room-type,.booking-person,.special-requirements{
        padding-top: 10px;
    }

    /*中间列表样式**************************************************************************/
    .section-body .set-detail,.section-body .set-detail-number,.section-body .set-detail-address{
        display: -moz-box;
        -moz-box-orient: horizontal;

        display: -webkit-box;
        -webkit-box-orient: horizontal;

        margin-left: 10px;
    }
    .set-detail,.set-detail-number{
        padding-top: 13px;
        padding-bottom: 13px;
        text-align: center;
        /* border-bottom: 1px solid #999999;
         -webkit-border-image: url(../../images/hotel/border.gif) 1 stretch;*/
    }
    .set-detail-address{
        padding-top: 10px;
        padding-bottom: 10px;
        text-align: center;
    }
    @font-face{
        font-family:"font-name-icon";
        src:url("../../fonts/icomoon.ttf")  format("truetype"),
        url("../../fonts/icomoon.eot?#iefix") format("embedded-opentype"),
        url("../../fonts/icomoon.woff") format("woff"),
        url("../../fonts/icomoon.svg") format("svg");
        font-weight:normal;
        font-style:normal;
    }
    .font-name-icon{
        font-family: "font-name-icon";
        font-weight: normal;
        font-style: normal;
        font-size: 15px;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;

    }
    .first-icon{
        color: #999999;
    }
    .second-icon{
        margin-left: 5px;
    }
    .set-text-button{
        position: absolute;
        right: 0px;
        margin-right: 24px;
        font-size: 14px;
        color: #1c94f7;
    }
    .greater-number {
        position: absolute;
        right: 0;
        margin-right: 10px;
        margin-top: 4px;
        display: inline-block;
        width: 8px;
        height: 8px;
        border-top: 1px solid #999;
        border-right: 1px solid #999;
        -webkit-transform: rotate(45deg);
        -moz-transform: rotate(45deg);
        -o-transform: rotate(45deg);
    }
    .greater-number-bottom{
        position: absolute;
        right: 0;
        margin-right: 10px;
        margin-top: 7px;
        display: inline-block;
        width: 4px;
        height: 8px;
        border-top: 1px solid #999;
        border-right: 1px solid #999;
        -webkit-transform: rotate(45deg);
        -moz-transform: rotate(45deg);
        -o-transform: rotate(45deg);
    }
    .set-detail,.set-detail-number{
        padding-top: 13px;
        padding-bottom: 13px;
        text-align: center;
        /*  border-bottom: 1px solid #999999;
          -webkit-border-image: url(../../images/hotel/border.gif) 1 stretch;*/
    }
    .set-text-detail{
        margin-left: 10px;
        font-size: 13px;
    }
    .set-text-detail2 .aa{
        margin-left: 15px;
        font-size: 13px;
        color: #333333;
    }
    .set-detail-address{
        padding-top: 10px;
        padding-bottom: 10px;
        text-align: center;
    }
    .set-text-shut{
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
        width: 221px;
    }
    .set-text-button{
        position: absolute;
        right: 0px;
        margin-right: 24px;
        font-size: 14px;
        color: #1c94f7;
    }
    .set-text-button .bb{
        color: #1c94f7;
    }
    .space_line{
        height: 10px;
        width: 100%;
        background: #eeeeee;
    }
    .section-body{
        background: #ffffff;
    }
    /*底部按钮样式**************************************************************************/
    .footer{
        display: -moz-box;
        -moz-box-orient: horizontal;

        display: -webkit-box;
        -webkit-box-orient: horizontal;
    }
    .greater-number-bottom{
        position: absolute;
        right: 0;
        margin-right: 10px;
        margin-top: 6px;
        display: inline-block;
        width: 8px;
        height: 8px;
        border-top: 1px solid #999;
        border-right: 1px solid #999;
        -webkit-transform: rotate(45deg);
        -moz-transform: rotate(45deg);
        -o-transform: rotate(45deg);
    }
    .ellipse{
        width: 26px;
        height: 18px;
        display: block;
        border-radius: 8px;
        background: #1c94f7;
        color: #ffffff;
        position: absolute;
        right: 0px;
        margin-right: 18px;
        margin-top: -17px;
        padding-right: 6px;
        font-size: 10px;
        text-align: center;
        line-height: 18px;
    }
    .footer{
        display: -moz-box;
        -moz-box-orient: horizontal;
        display: -webkit-box;
        -webkit-box-orient: horizontal;
        position: relative;
        bottom: 0px;
        width: 100%;
        height: 40px;
        /* background: #fff; */
        margin-top: 50px;
        /* padding-top: 50px; */
    }
    .footer div:nth-of-type(1){
        padding-top: 11px;
        width: 50%;
        border-right: 1px solid #eeeeee;
        background-color: white;
        text-align: center;
    }
    .footer div:nth-of-type(2){
        padding-top: 12px;
        width: 50%;
        padding-left: 28px;
        background-color: white;
    }
    .footer span{
        padding-left: 5px;
    }

    .pay-immediately div:nth-of-type(3){
        display: none;
    }
    /*倒计时样式**************************************************************************/

    .time-item  {
        background: #C71C60;
        color: #fff;
        line-height: 40px;
        font-size: 14px;
        font-family: Arial;
        padding: 0 10px;
        border-radius: 5px;

    }
    #day_show {
        float:left;
        line-height:40px;
        color:#ffffff;
        font-size:14px;
        margin:0 10px;
        font-family:Arial,Helvetica,sans-serif;
    }
    .item-title .unit {
        background:none;
        line-height:40px;
        font-size:14px;
        padding:0 10px;
        float:left;
    }
    .pay-immediately-count-num{
        display: -moz-box;
        -moz-box-orient: horizontal;

        display: -webkit-box;
        -webkit-box-orient: horizontal;
    }
    .del-order{
        display: none;
        text-align: center;
        background: #999999;
        height: 40px;
        border-radius: 0px 0px 10px 10px;
        position: absolute;
        bottom: 0px;
        width: 100%;
        color: #fff;
        line-height: 40px;
    }
    //取消按钮弹出的对话框
    .arrow_mask {
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        z-index: 1;
        background: #333333;
        opacity: 0.55;
        display: none;
    }
    .cancel-order-dialog{
        display: none;
        width: 260px;
        height: 206px;
        background: #fff;
        border-radius: 6px;
        position: absolute;
        top: 0px;
        margin-top: 200px;
        left: 50%;
        margin-left: -130px;
        z-index: 1;
        padding-top: 33px;
    }
    .cancel-dialog div:nth-of-type(1){
        text-align: center;
       /* border-right: 1px solid #999;
        padding: 10px;
        border-top: 1px solid #999;*/
    }
    .cancel-dialog-btn{
        display: -moz-box;
        -moz-box-orient: horizontal;
        display: -webkit-box;
        -webkit-box-orient: horizontal;
       /* margin-top: -8px;*/
     }
    .cancel-dialog-btn div:nth-of-type(1){
        width: 130px;
        border-right: 1px solid #999;
        padding: 10px;
        border-top: 1px solid #999;
    }

    .cancel-dialog-btn div:nth-of-type(2){
        width: 130px;
        text-align: center;
        padding: 10px;
        border-top: 1px solid #999;
    }

    .space-underline2 {
        margin-top: 116px;
    }
    .space-underline3 {
        width: 100%;
        height: 10px;
        -webkit-border-image: url(../../images/hotel/border.gif) 1 stretch;
        -webkit-transform: scaleX(0.2);
        -moz-transform: scaleX(0.2);
    }

reset.css

@charset "utf-8";
    *{margin:0;padding:0;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);-webkit-box-sizing: border-box;-moz-box-sizing: border-box;}

    html {
        min-height: 100%;
        font-size: 100%;
        -webkit-text-size-adjust: 100%;
        -ms-text-size-adjust: 100%;
    }

    body {
        width: 100%;
        min-height: 100%;
        font-family:"Microsoft YaHei","微软雅黑","MicrosoftJhengHei","华文细黑","Helvetica", "Arial", "sans-serif";
        font-size: 14px;
        position: relative;
        word-break:break-all;
    }

    a {
        text-decoration: none;
        -webkit-tap-highlight-color: rgba(0, 0, 0, 0.35);
        -webkit-box-sizing:border-box;
    }

    img {
        -ms-interpolation-mode: bicubic;
        vertical-align: middle;
    }

    img:not([src*="/"]) {
        display: none;
    }

    table {
        border-collapse: collapse;
        border-spacing: 0;
    }

    textarea {
        resize: none;
    }

    input, button, select, textarea {
        -webkit-appearance:none;
        outline: none;
        border-radius: 0;
    }
    input::-webkit-outer-spin-button,
    input::-webkit-inner-spin-button {
        -webkit-appearance: none !important;
        margin: 0;
    }
    ul,ol,li {
        list-style: none;
        -webkit-margin-before: 0;
        -webkit-margin-after: 0;
        -webkit-margin-start: 0;
        -webkit-margin-end: 0;
        -webkit-padding-start: 0;
    }
    .section-body .text  {
        margin-top: 24px;
        margin-left: 40px;
        margin-right: 35px;
        width: 84%;
        font-family: "宋体";
        font-size: 18px;
    }
    .section-body .textImg{
        margin-top: 45px;
        color: blue;
        text-align: center;
        vertical-align: middle;
    }
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值