jquery+ajax星级评分示例源码,基于jQuery的星级评分插件

首先看一下运行效果如下图所示。

20110812112246599.gif

鼠标移到星星上该星星前面的所有星星全部变亮,鼠标单击将记录点击的星星数,前面的所有星星将变亮。

一、原理本程序的原理是这样的:一个“ul”标签,该标签的背景为灰色的星星,控制“ul”标签的宽度显示星星的数量。例如:一个星星图片的宽度为23px,那么要显示10个星星,则“ul”的宽度为230px就可以显示10个星星。

n个“li”标签,n表示您要显示星星的个数,例如你要显示10个星星那么将有10个“li”标签。那么这10个标签的宽度分别为1个星星的宽度23px,2个星星的宽度46px,......,10个星星的宽度230px。这些“li”标签的背景将为蓝色的星星。

则另外还有一个“li”标签记录鼠标单击的星星或初始设置。

这些标签都是重叠在一起的,通过鼠标滑动效果切换这些标签的层叠顺序,显示不同的星星数量,单击记录星星个数。

二、源码

$.fn.studyplay_star=function(options,callback){

//默认设置

var settings ={

MaxStar :20,

StarWidth :23,

CurrentStar :5,

Enabled :true

};

if(options) { jQuery.extend(settings, options); };

var container = jQuery(this);

container.css({"position":"relative"})

.html('

.find('.studyplay_starBg').width(settings.MaxStar*settings.StarWidth)

.html('

');

if(settings.Enabled)

{

var ListArray = "";

for(k=1;k

{

ListArray +='

';

}

container.find('.studyplay_starBg').append(ListArray)

.find('.studyplay_starON').hover(function(){

$("#studyplay_current").hide();

$(this).removeClass('studyplay_starON').addClass("studyplay_starovering");

},

function(){

$(this).removeClass('studyplay_starovering').addClass("studyplay_starON");

$("#studyplay_current").show();

})

.click(function(){

var studyplay_count = settings.MaxStar - $(this).css("z-index")+1;

$("#studyplay_current").width(studyplay_count*settings.StarWidth)

//回调函数

if (typeof callback == 'function') {

callback(studyplay_count);

return ;

}

})

}

}

这个插件有两个参数一个是options表示插件的一些基本设置;callback表示回调函数,该函数存在一个参数表示用户选择的星星数量。

三、使用

如果我们想在id为“z”的div上显示5个星星,默认有一颗星星选中,弹出选择星星的个数对话框,就可以如下编写代码:

$(document).ready(function(){

$("#z").studyplay_star({MaxStar:5,CurrentStar:2},function(value){alert(value)});

});

如果想显示评分结果 可以把Enabled设置false就ok了

四、代码下载

经网友反映说火狐下面存在这问题,今天进行了调试进行了修改 主要是因为样式中li标签没有定义高度引起的,现在已经修正,谢谢朋友们。火狐修正版下载地址:

star2.rar

真心的谢谢网友们

第三次修改:添加0.5分评分功能

使用说明:其中half等于0表示一分一分的增加,1表示0.5的增加

例如:$("#z").studyplay_star({MaxStar:12,CurrentStar:2,Enabled:true,Half:1},function(value){alert(value)});

下载地址:halfstar2.rar

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值