我与酷车中国:投票系统

公司要办车模大赛,需要投票系统。

任务分下来后,就考虑:1.要有投票对象,就是要参赛的车模

2.投票系统要能重复使用,不要这次车大赛后,投票系统就要高搁了。

3.要实现较好的用户体验,和限时投票。决定用jQuery+Ajax实现投票。

功能设计:活动+参赛者+评论+投票+参赛相册展示

数据库设计略去

Js代码

 

 

ExpandedBlockStart.gif 代码
// loading
function loading(){
    var width 
=   60 ,height  =   60 ;
    $(
" body " ).append( " <div id='loading_box' style='width: "   +  width  +   " px;height: "   +  height  +   " px; line-height: "   +  height  +   " px;align:center; position:absolute; border:solid 1px #ccc; vertical-align:middle; padding-top:6px; background-color:White;'><img src='/images/loader.gif' ></div> " );
    setCenter(
' loading_box ' ,width,height)

}
function updateLoading(message){
    var box 
=  $( " #loading_box " );
    
if (arguments.length  ==   3 ){ // 参数有三个,后两个为宽和高
        setCenter( ' loading_box ' ,arguments[ 1 ],arguments[ 2 ])
        box.css({width:arguments[
1 ] + " px " ,height:arguments[ 2 ] + " px " });
    }
    box.html(message);
    
// 关闭窗口
        box.fadeOut( 1000 ,function(){
           $(
this ).remove();
         });
}
// 设置居中
function setCenter(box,width,height){
    var _version 
=  $.browser.version;
    var    cw 
=  document.documentElement.clientWidth,ch  =  document.documentElement.clientHeight,est  =  document.documentElement.scrollTop; 
    
if  ( _version  ==   6.0  ) {
        $(
" # "   +  box).css({left: " 50% " ,top:(parseInt((ch) / 2 ) + est) + " px " ,marginTop:  - ((parseInt(height) + 53 ) / 2 ) + " px " ,marginLeft: - ((parseInt(width) + 32 ) / 2 ) + " px " ,zIndex:  " 999999 " });
    }
else  {
        $(
" # "   +  box).css({left: " 50% " ,top: " 50% " ,marginTop: - ((parseInt(height) + 53 ) / 2 ) + " px " ,marginLeft: - ((parseInt(width) + 32 ) / 2 ) + " px " ,zIndex:  " 999999 " });
    };
}

function Vote(id,t){
   
    var voteTime 
=  Cookies. get ( " vote_ "   +  id);
    
if (voteTime  !=   '' ){
        var voteDate 
=   new  Date(voteTime);
        var curDate 
=   new  Date();
    //此外设计的意思是,投一次票后,5分钟后可以再次投票
        var d 
=  voteDate.getTime()  - curDate.getTime()   +   5 * 60 * 1000 ;
         
if (d  >   0 )
         {
            var m 
=  Math.floor(d / 60000 ); 
            var s 
=  Math.floor((d - m * 60000 ) / 1000 ); 
            alert(
" 该选手您已经投过票了,稍等 "   +  m  +   " "   +  s  +   " "   +   " 后您可以再次投票! " );
         }
        
else
        {
            
// 投票
            ajaxVote(id);
        }

    }
else {
        
// 第一次投票
        ajaxVote(id);
    }
}
 function ajaxVote(id,t){
      loading();
      
// ajax提交数据
      $.post( " /Tools/Ajax.aspx " , { type:  " vote " , id: id,vt:t },
      function(data){
        
if (data  ==   " 0 " ){
           updateLoading(
" 系统出错,请稍后再试 " , 280 , 60 );
        }
else {
           updateLoading(
" 恭喜您,投票成功。五分钟后可再次投票 ^-^ " , 280 , 60 );
           Cookies.
set ( " vote_ "   +  id, new  Date());
           
// 更新投票个数
           var v  =   $( " #lab_Vote_ "   +  data);
          
if (v.text()  ==   "" ){
                v.text(
" 1 " );
          }
else {
                v.text(Math.floor(v.text()) 
+   1 );
          }
        }
      });
 }

 详细请见http://www.kuchechina.com/zhuanti/wdml/

 

转载于:https://www.cnblogs.com/zhuyue/archive/2010/07/11/1775289.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值