webrebuild.org第四届年会——金秋四城联动
大白的工作笔记 注册 | 登陆

jQuery 模拟豆瓣评分

自己写的效果,代码有点乱。所以做了下注释以便阅读。技术还是不行,加油加油!希望下次的东西更完美~~

http://www.dabaii.com/demo/38

 

定义评分的横排显示。span 是评分图标 strong 是最左边的“评分:” em是最右边的 评分状态文字

CSS代码
  1. <style type="text/css"><!--   
  2. #pingfen_sect { height:18px;line-height:18pxfont-size:12px;}   
  3. #pingfen_sect span { display:inlinefloat:leftwidth:20pxheight:18pxbackground:url(heartx.gif) no-repeat 0 0; cursorpointer;}   
  4. #pingfen_sect strong {display:inlinefloat:leftfont-weight:normal; }   
  5. #pingfen_sect em {display:inlinefloat:leftfont-style:normalpadding-left:10px; }   
  6. --></style>   

xhtml不需要清除浮动,应为我 #pingfen_sect 已经定义好了高度。 

XML/HTML代码
  1. <div id="pingfen_sect"><strong>评分:</strong><span></span><span></span><span></span><span></span><span></span><em></em></div>  

js代码,满足了一下几个需求:

1.用户第一次进来默认评分显示为 0;用户评分以后再次进来 显示上次评分。

2.进入页面只能评分一次。

3.未评分 鼠标离开评分范围以后 没有评分结果,评分以后鼠标离开评分范围锁定并显示评分结果。

4.通过设定标签属性 v 给5个状态的评分传递不同的参数。现在五个参数对应的是1 2 3 4 5,也可以改成A B C D E F。 结果和显示信息互不冲突。 

XML/HTML代码
  1. <script src="jquery.js"></script>  
  2. <script>  
  3.     $(document).ready(function(){   
  4.         //默认评分 -1为没有评分   
  5.         var i=-1;   
  6.         //设定默认评分信息   
  7.         $("#pingfen_sect em").html(["很差","较差","还行","推荐","力荐"][i]);   
  8.         //设定默认评分信息图标 给所有图标建立索引   
  9.         $('#pingfen_sect span').slice(0,i+1).css("background-position","0 -20px").end().each(function(index){   
  10.             //当前图标注册鼠标触摸事件   
  11.             $(this).mouseover(function(){   
  12.                 //当前图标 以及 当前图标之前的所有图标 改变; 当前图标之后 的所有图标设置为默认状态!   
  13.                 $(this).css("background-position","0 -20px").prevAll().css("background-position","0 -20px").end().nextAll().css("background-position","0 0");   
  14.                 //根据图标索引 设定 评分信息 状态 评分值   
  15.                 $("#pingfen_sect em").html(["很差","较差","还行","推荐","力荐"][index]).attr("v",["1","2","3","4","5"][index]);   
  16.             //  当前图标注册鼠标移出事件   
  17.             }).mouseout(function(){   
  18.                 //设置 图标状态 为进入时候的默认状态   
  19.                 $('#pingfen_sect span').slice(0,i+1).css("background-position","0 -20px").end().slice(i+1,$("#pingfen_sect span").length).css("background-position","0 0");   
  20.                 //设置 评分信息 为进入时候的默认状态 评分值   
  21.                 (i<0)?$("#pingfen_sect em").html(""):$("#pingfen_sect em").html(["很差","较差","还行","推荐","力荐"][i]).attr("v",["1","2","3","4","5"][i]);   
  22.             //当前图片注册鼠标点击事件   
  23.             }).click(function(){   
  24.                 //点击以后完成打分,卸载所有 的 事件,并移除鼠标手势。   
  25.                 $("#pingfen_sect span").unbind().css("cursor","auto");     
  26.                 //设置评分信息的值ii   
  27.                 var ii = $("#pingfen_sect em").attr("v");   
  28.                 //调用评分操作   
  29.                 alert(ii+"分");   
  30.             });   
  31.         });   
  32. })  

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5

4条记录访客评论

食堂承包www.shsx88.com

Post by 食堂承包 on 2009, December 3, 4:06 PM 引用此文发表评论 #1

隔离卡批发.价格优惠.电话:

Post by 隔离卡 on 2009, December 3, 3:31 PM 引用此文发表评论 #2

烤肉炉百度烤肉炉纸上烤肉炉烧烤炉专用纸围裙其它致富小机械批发.价格优惠.电话:02482116562 QQ:491783951 网址:http://www.086hh.com

Post by 烤肉炉 on 2009, December 2, 10:03 PM 引用此文发表评论 #3

用jQuery写到cookie里呀
你很努力呀!

Post by 漠漠 on 2008, September 4, 7:36 PM 引用此文发表评论 #4


发表评论

评论内容 (必填):