首页 > 代码库 > 限时抢购

限时抢购

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>倒计时抢购商品</title><style>    html, body, ul {        margin: 0;        padding: 0;    }    body {        padding: 10px;    }    h1 {        font-size: 14px;    }    ul {        font-size: 0;    }    li {        list-style: none;        background: url(img/down.png) 0 0 no-repeat;        width: 162px;        height: 279px;        display: inline-block;        border-top: 1px solid #A0A0A4;        position: relative;    }    .box {        position: absolute;        top: 0;        left: 0;        background: #fff;        width: 152px;        height: 269px;        padding: 5px;        margin: 0 2px;    }    #showcase li:first-child .box {        margin-left: 0;    }    .box img {        width: 100px;        height: 80px;        margin: 20px;    }    .box input[type="text"] {        width: 106px;        height: 16px;        background: #DED6E7;        color: #522121;        font-size: 12px;        border: 1px solid #EFEFEF;        padding: 2px;    }    .box input[type="button"] {        color: #847373;        background: #fff;        border: none;        width: 36px;        font-size: 14px;        font-weight: bold;    }    .box .timeoff {        font-size: 14px;        color: #A0A0A4;        text-align: center;    }    .box p {        font-size: 14px;        margin-bottom: 0;    }    .box span {        color: #BDADBD;        font-weight: bold;    }    .box .price {        color: #BD214A;        font-weight: bold;    }    table {        width: 648px;        background: #DED6E7;        text-align: center;        font-size: 14px;        color: #522121;        font-weight: bold;        margin-top: 30px;        border-collapse: collapse;    }    td {        padding: 10px 0;        border-top: 4px solid #fff;        border-bottom: 4px solid #fff;    }    td img {        width: 80px;        height: 51px;        border: 1px solid #8C4A4A;        margin-left: 120px;    }    tbody tr td:first-child {        width: 180px;        padding: 0 10px;        color: #000;        font-weight: normal;    }    tbody div {        width: 180px;        overflow: hidden;        text-overflow: ellipsis;        white-space: nowrap;    }    #total {        font-weight: bold;        font-size: 20px;    }    #total .all {        color: #BD214A;    }        </style><script type="text/javascript" src="http://www.mamicode.com/float.js"></script><script type="text/javascript">window.onload = function (){    var oul = document.getElementById(‘showcase‘);    var odiv = oul.getElementsByTagName(‘div‘);    var otable = document.getElementsByTagName(‘tbody‘)[0];    var ototal = document.getElementById(‘total‘).getElementsByTagName(‘span‘)[0];        for ( var i = 0; i < odiv.length; i++)    {        fntime(odiv[i]);    }        function fntime (box)    {        var obtn = box.getElementsByTagName(‘input‘)[1];                obtn.onclick = function ()        {            var inew = new Date(box.getElementsByTagName(‘input‘)[0].value);            var op = box.getElementsByTagName(‘p‘)[0];            var op2 = box.getElementsByTagName(‘p‘)[1].innerHTML;            var oimg = box.getElementsByTagName(‘img‘)[0];            var price = box.getElementsByTagName(‘span‘)[2].innerHTML;            clearInterval(box.timer);            box.timer = setInterval(function ()            {                var inow = new Date();                var t = Math.floor((inew - inow)/1000);                if( t >= 0 )                {                    op.innerHTML = ‘剩余‘ + Math.floor(t/86400) + ‘天‘ +  Math.floor(t%86400/3600) + ‘时‘ + Math.floor(t%86400%3600/60) + ‘分‘ +  t%60 + ‘秒‘;                }                else                {                    shake(box,‘left‘,function()                    {                        domove(box,‘top‘,10,50,279);                        opacity(box,10,0,50,function()                        {                            box.style.display = ‘none‘;                            otable.innerHTML += ‘<tr><td>‘+ op2+‘</td><td>‘+price+‘</td><td><img src= "http://www.mamicode.com/‘+oimg.src+‘"></td></tr>‘;                            ototal.innerHTML = parseFloat(ototal.innerHTML)+parseFloat(price);                                                    })                    })                }            },1000);                    };            }        };</script>        </head><body>    <h1>限购时间</h1>    <ul id="showcase">        <li>            <div class="box">                <input type="text" value="http://www.mamicode.com/August 28, 2014 21:56:0">                <input type="button" value="http://www.mamicode.com/确定">                <p class="timeoff">剩余00天00时00分00秒</p>                <img src="http://www.mamicode.com/img/5-1.jpg" />                <p>疯狂599,美的爆款隐藏式面板下拉门微波炉</p>                <p><span>抢购价:</span><span class="price">¥</span><span class="price">599.00</span></p>            </div>        </li>        <li>            <div class="box">                <input type="text" value="http://www.mamicode.com/August 28, 2014 21:56:0">                <input type="button" value="http://www.mamicode.com/确定">                <p class="timeoff">剩余00天00时00分00秒</p>                <img src="http://www.mamicode.com/img/5-2.jpg" />                <p>疯狂3299,美的爆款隐藏式面板下拉门微波炉</p>                <p><span>抢购价:</span><span class="price">¥</span><span class="price">3299.00</span></p>            </div>        </li>        <li>            <div class="box">                <input type="text" value="http://www.mamicode.com/August 28, 2014 21:56:0">                <input type="button" value="http://www.mamicode.com/确定">                <p class="timeoff">剩余00天00时00分00秒</p>                <img src="http://www.mamicode.com/img/5-3.jpg" />                <p>疯狂1块钱,美的爆款隐藏式面板下拉门微波炉</p>                <p><span>抢购价:</span><span class="price">¥</span><span class="price">1.00</span></p>            </div>        </li>        <li>            <div class="box">                <input type="text" value="http://www.mamicode.com/August 28, 2014 21:56:0">                <input type="button" value="http://www.mamicode.com/确定">                <p class="timeoff">剩余00天00时00分00秒</p>                <img src="http://www.mamicode.com/img/5-4.jpg" />                <p>疯狂168,美的爆款隐藏式面板下拉门微波炉</p>                <p><span>抢购价:</span><span class="price">¥</span><span class="price">168.00</span></p>            </div>        </li>    </ul>    <table>        <thead>            <tr>                <td width="200px">商品名称</td>                <td width="150px">价钱</td>                <td width="298px"></td>            </tr>        </thead>        <tbody>                    </tbody>    </table>    <p id="total">        总价:<span class="all">0</span>元    </p></body></html>
function getstyle(obj,attr){    return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr];}function domove (obj,attr,step,frequency,target,endfn){    step = parseInt(getstyle(obj,attr))<target?step:-step;    clearInterval(obj.timer);    obj.timer = setInterval( function ()    {        var speed = parseInt(getstyle(obj,attr)) + step;        if(step>0&&speed>target||step<0&&speed<target)        {            speed = target;        }        obj.style[attr] = speed + ‘px‘;        if( speed == target )        {            clearInterval(obj.timer);            endfn&&endfn();        }    },frequency); };function opacity(obj,step,target,frequency,endfn){    var currentOpacity = getstyle(obj,‘opacity‘) * 100;    step = currentOpacity < target?step:-step;    clearInterval(obj.opacity)    obj.opacity = setInterval (function ()    {        currentOpacity = getstyle(obj,‘opacity‘) *100;        var nextOpacity = currentOpacity + step;        if(step>0&& nextOpacity>target || step<0&& nextOpacity < target )        {            nextOpacity = target;        }    obj.style.opacity = nextOpacity/100;    obj.style.filter = ‘alpha(opacity:)‘ + nextOpacity +‘)‘;    if(nextOpacity == target )    {        clearInterval(obj.opacity);        endfn&&endfn();    }        },frequency);        };function shake(obj,attr,endfn){    if( obj.shaked ) { return;  }    obj.shaked = true;        var num = 0;    var timer = null;    var arr = [];    var pos = parseInt(getstyle(obj,attr));        for( var i = 20; i > 0; i-=2 )    {        arr.push(i,-i);    }    arr.push(0);        clearInterval(obj.shake);    obj.shake = setInterval(function ()    {        obj.style[attr] = pos + arr[num] +‘px‘;        num++;        if(num==arr.length)        {            clearInterval(obj.shake);            endfn&&endfn();            obj.shaked = false;        }    },50);};

 

限时抢购