<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html xmlns=”;
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″
/>
<title>无标题文档</title>
<script type=”text/javascript”
src=”jquery-1.6.2.js”></script>
<script type=”text/javascript”>
$(function(){
var lazyheight = 0;
//获取数据
function showload(){
lazyheight = parseFloat($(window).height()) +
parseFloat($(window).scrollTop());
if ($(document).height()-100 <= lazyheight) {
alert(“xxx”);
}
}
//showload();
//绑定事件
$(window).bind(“scroll”, function(){
//当滚动条滚动时
showload();
});
})
</script>
</head>
<body>
<img src=”82938048_46374805.jpg”/>
<img src=”82938048_46374805.jpg”/>
<img src=”82938048_46374805.jpg”/>
</body>
</html>

// JavaScript Document
    /*
    *@date 2011 10 24
    *@ author tugenhua
    *@ email
[email protected]
    *@ 可以一个页面多次引用
    依赖的结构 */
    <div id=”tab1″>
    <ul class=”menu”>
        <li class=”current”>tab1</li>
        <li>tab2</li>
        <li>tab3</li>
        <li class=”last-col”>tab4</li>
    </ul>
    <div class=”content-main”>
        <div class=”content”>tab1</div>
        <div class=”content hide”>tab2</div>
        <div class=”content hide”>tab3</div>
        <div class=”content hide”>tab4</div>
    </div>
</div>
/*页面引用的方式
    new tabSlider(“#tab1”,4);
    #tab1 是外部ID,4 指 一共有多少个li
*/
function tabSlider(obj,count){
    var _this = this;
        _this.obj = obj;
        _this.count = count;
        _this.time = 2000;//停留的时间
        _this.n = 0;
        var  t;
        this.slider = function(){
            $(_this.obj + ” .menu
li”).bind(“mouseover”,function(event){
               
$(event.target).addClass(“current”).siblings().removeClass(“current”);
                var index = $(_this.obj + ” .menu li”).index(this);
                $(_this.obj + ” .content-main
.content”).eq(index).show().siblings().hide();
                _this.n = index;    
            })  
        }
        this.addhover = function(){
           
$(_this.obj).hover(function(){clearInterval(t);},function(){t=setInterval(_this.autoplay,_this.time)}); 
        }
        this.autoplay = function(){
            _this.n = _this.n >=(_this.count-1)? 0 : ++_this.n;
            $(_this.obj + ” .menu
li”).eq(_this.n).trigger(“mouseover”);    
        }   
        this.factory = function(){
            this.slider();
            this.addhover();
            t = setInterval(this.autoplay,_this.time);  
        }
        this.factory();
}

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html xmlns=”” lang=”zh-CN”>
<head>
<title></title>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″
/>
<meta http-equiv=”Content-Language” content=”zh-CN” />
<meta http-equiv=”X-UA-Compatible” content=”IE=EmulateIE7″ />
<meta content=”all” name=”robots” />
<meta name=”author” content=”” />
</head>
<body onload=’start()’>
.
距活动开始还有:<span id=”sk_time”></span> <!–
这个是倒计时的显示 –>
.
<br/>
<span id=”wyz”>
<span class=”btn_02″>  参加秒杀!!!  </span> <!–
这个是秒杀按钮,倒计时为0时会变成可以秒杀的样式 –>
</span>
.
<script type=”text/javascript”>
var msbegintime = “1323446400000”; //这个是活动开始的时间戳
var msendtime = “1325174400000”; //这个是活动结束的时间戳
function start(){
    callBackServerTime(“sk_time”, “wyz”, msbegintime, msendtime);
}
//_showtimediv:时间显示区域,_showqdiv:状态显示区域
//这个向服务器发送一个ajax请求,服务器返回服务器当前的时间戳,也就是xmlobj.responseText是一个服务器的时间戳
function callBackServerTime(_showtimediv, _showqdiv, _ms_begintime,
_ms_endtime) {
    var now = new Date();
    var urlstr = “random=” + Math.round(Math.random() * 10000000);
    var ajaxobj = new AJAXRequest;    // 创建AJAX对象
    ajaxobj.method = “GET”;   // 设置请求方式为GET
    ajaxobj.url = “/gz/source/getServerTime.do?” + urlstr;
//注意ajax的跨域问题
    ajaxobj.callback = function(xmlobj) {
        //ShowQTime(xmlobj.responseText, _showtimediv, _showqdiv,
_ms_begintime, _ms_endtime, _tryid,sourceid);
        ShowQTime( _showtimediv, _showqdiv,”1323158067288″,
_ms_begintime, _ms_endtime);     // 这里使用静态数字替代
xmlobj.responseText 方便测试
    }
    ajaxobj.send();    // 发送请求
}
//动态显示”秒杀“时间函数
function ShowQTime(_showtimediv, _showqdiv, _nowtime,
_ms_begintime, _ms_endtime) {
    _nowtime = Number(_nowtime);
    var timmer = Math.floor((_ms_endtime – _nowtime) / (1000));
    if (_nowtime >= _ms_begintime && timmer > 0) {;
        //秒杀进行中
        document.getElementById(_showtimediv).innerHTML = “<span
class=’pim_time’>0</span>天<span
class=’pim_time’>0</span>小时<span
class=’pim_time’>0</span>分钟<span
class=’pim_time’>0</span>秒”;
        document.getElementById(_showqdiv).innerHTML = “<span
class=’btn_01′><a
href=’/gz/sk/v/’>  秒杀开始了!!!  </a></span>”;
    } else {
        //秒杀倒计时
        var nMS = _ms_begintime – _nowtime; 
//计算出开始时间和现在时间的时间戳差
        var nD = Math.floor(nMS / (1000 * 60 * 60 * 24));
        var nH = Math.floor(nMS / (1000 * 60 * 60)) % 24;
        var nM = Math.floor(nMS / (1000 * 60)) % 60;
        var nS = Math.floor(nMS / 1000) % 60;
        var nMS = Math.floor(nMS / 100) % 10;
        if (nD >= 0) {
            var _timestr = “”;
            var snd = nD.toString();
            if (snd.length == 1) {
                snd = “0” + snd;
            }
            _timestr += “<span class=’pim_time’>” +
snd.substring(0, 1) + snd.substring(1, 2) +”</span>天”;
            var snH = nH.toString();
            if (snH.length == 1) {
                snH = “0” + snH;
            }
            _timestr += “<span class=’pim_time’>” +
snH.substring(0, 1) + snH.substring(1, 2) +”</span>小时”;
            var snM = nM.toString();
            if (snM.length == 1) {
                snM = “0” + snM;
            }
            _timestr += “<span class=’pim_time’>” +
snM.substring(0, 1) + snM.substring(1, 2) +”</span>分钟”;
            var snS = nS.toString();
            if (snS.length == 1) {
                snS = “0” + snS;
            }
            _timestr += “<span class=’pim_time’>” +
snS.substring(0, 1) + snS.substring(1, 2) +”</span>秒”;
            document.getElementById(_showtimediv).innerHTML =
_timestr;
        }else {
            //秒杀结束
             document.getElementById(_showtimediv).innerHTML =
“<span class=’pim_time’>0</span>天<span
class=’pim_time’>0</span>小时<span
class=’pim_time’>0</span>分钟<span
class=’pim_time’>0</span>秒”;
             document.getElementById(_showqdiv).innerHTML = “<span
class=’btn_01′><a
href=’/gz/sk/v/’>  秒杀结束了!!!  </a></span>”;
        }
    }
    //注意 (_nowtime + 1000) 增加 1 秒
    setTimeout(“ShowQTime(‘” + _showtimediv + “‘,'” + _showqdiv +
“‘,'” + (_nowtime + 1000) + “‘,'” + _ms_begintime + “‘,'” +
_ms_endtime + “‘)”, 1000);
}
function AJAXRequest() {
    var xmlObj = false;
    var CBfunc,ObjSelf;
    ObjSelf=this;
    try { xmlObj=new XMLHttpRequest; }
    catch(e) {
        try { xmlObj=new ActiveXObject(“MSXML2.XMLHTTP”); }
        catch(e2) {
            try { xmlObj=new ActiveXObject(“Microsoft.XMLHTTP”); }
            catch(e3) { xmlObj=false; }
        }
    }
    if (!xmlObj) return false;
    this.method=”POST”;
    this.url;
    this.async=true;
    this.content=””;
    this.callback=function(cbobj) {return;}
    this.send=function() {
        if(!this.method||!this.url||!this.async) return false;
        xmlObj.open (this.method, this.url, this.async);
        if(this.method==”POST”)
xmlObj.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”);
        xmlObj.onreadystatechange=function() {
            if(xmlObj.readyState==4) {
                if(xmlObj.status==200) {
                    ObjSelf.callback(xmlObj);
                }
            }
        }
        if(this.method==”POST”) xmlObj.send(this.content);
        else xmlObj.send(null);
    }
}
</script>
</body>
</html>

复制代码 代码如下:

复制代码 代码如下:

复制代码 代码如下:

代码如下: !DOCTYPE html PUBLIC
“-//W3C//DTD XHTML 1.0 Transitional//EN”
“” html
xmlns=”…

因为工作中经常会碰到这样的问题 所以写博客…

最近做了一个房产的秒杀,团购的电子商务网站(房子也有秒杀,出手不小啊),其中里面有一个秒杀的倒计时展示,主要是判断当前时间距离秒杀开始还有多少时间,还有秒杀开始和秒杀结束的各种展示。
其中最主要的一点就是所谓的当前时间不能使用浏览器通过new
Date()获取的客户端时间,这样只要用户修改了自己的机器时间那么倒计时就会乱透了,所以这个当前时间必须使用的是服务器时间,所以采用的是静态缓存页面所以这个当前时间使用ajax方式进行获取
图片 1

复制代码 代码如下:

this.factory = function(){
   this.slider();
   this.addhover();
   t = setInterval(this.autoplay,_this.time);
  }
  this.factory();

发表评论

电子邮件地址不会被公开。 必填项已用*标注