A very minimal, yet complete, solution to a star rating system!
Very accurate; uses percentages! Compared with the traditional 5 star system, our percentage based Star Rating function gives you nearly 1,700% increase in accuracy.
Have multiple items on one page for your users to rate? No problem! It can handles an unlimited amount of concurrent operations.
/* AJAX Star Rating v1.0.2, Programming by Ulyses */
/* Updated February 7th, 2007 */
function $(o) { return((typeof(o)=='object'?o:document).getElementById(o)); }
function $S(o) { return($(o).style); }
function agent(v) { return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0)); }
function abPos(o) { var o=(typeof(o)=='object'?o:$(o)), z={X:0,Y:0}; while(o!=null) { z.X+=o.offsetLeft; z.Y+=o.offsetTop; o=o.offsetParent; }; return(z); }
function XY(e,v) { var o=agent('msie')?{'X':event.clientX+document.body.scrollLeft,'Y':event.clientY+document.body.scrollTop}:{'X':e.pageX,'Y':e.pageY}; return(v?o[v]:o); }
var star={
/* Mouse Events */
'cur':function(e,o) { if(star.stop) { star.stop=0;
document.onmousemove=function(e) { var n=star.num;
var p=abPos($('star'+n)), x=XY(e), oX=x.X-p.X, oY=x.Y-p.Y; star.num=o.id.substr(4);
if(oX<1 || oX>84 || oY<0 || oY>19) { star.stop=1; star.revert(); }
else {
$S('starCur'+n).width=oX+'px';
$S('starUser'+n).color='#111';
$('starUser'+n).innerHTML=Math.round(oX/84*100)+'%';
}
};
} },
'update':function(e,o) { var n=star.num, v=parseInt($('starUser'+n).innerHTML);
n=o.id.substr(4); $('starCur'+n).title=v;
req=new XMLHttpRequest(); req.open('GET','/AJAX_Star_Vote.php?vote='+(v/100),false); req.send(null);
},
'revert':function() { var n=star.num, v=parseInt($('starCur'+n).title);
$S('starCur'+n).width=Math.round(v*84/100)+'px';
$('starUser'+n).innerHTML=(v>0?Math.round(v)+'%':'');
$('starUser'+n).style.color='#888';
document.onmousemove='';
},
/* Data */
'stop':1,
'num':0
};
CSS
#star ul.star { LIST-STYLE: none; MARGIN: 0; PADDING: 0; WIDTH: 85px; HEIGHT: 20px; LEFT: 10px; TOP: -5px; POSITION: relative; FLOAT: left; BACKGROUND: url('/media/stars.gif') repeat-x; CURSOR: pointer; }
#star li { PADDING: 0; MARGIN: 0; FLOAT: left; DISPLAY: block; WIDTH: 85px; HEIGHT: 20px; TEXT-DECORATION: none; text-indent: -9000px; Z-INDEX: 20; POSITION: absolute; PADDING: 0; }
#star li.curr { BACKGROUND: url('/media/stars.gif') left 25px; FONT-SIZE: 1px; }
#star div.user { LEFT: 15px; POSITION: relative; FLOAT: left; FONT-SIZE: 13px; FONT-FAMILY: Arial; COLOR: #888; }
<ul id="star" class="star" onmousedown="star.update(event,this)" onmousemove="star.cur(event,this)" title="Rate This!">
<li id="starCur" class="curr" title="80" style="width: 67px;"></li>
</ul>
<div id="starUser" class="user">80%</div>
分享到:
- 2008-04-05 19:42
- 浏览 1080
- 评论(0)
- 论坛回复 / 浏览 (0 / 1335)
- 查看更多
相关推荐
Bootstrap Star Rating是一款基于jQuery的插件,用于在Web应用程序中创建功能丰富的星级评分系统。它以其简洁的界面和强大的自定义能力,在Web开发领域中受到广泛欢迎。此插件是与Bootstrap框架兼容的,因此可以无缝...
Ajax-bootstrap-star-rating-codeigniter.zip,带编码器点火器的动态自举星级评定,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小...
3. **初始化插件**:在JavaScript中,通过`$("#yourElement").starRating(options)`来初始化插件,其中`options`是一个包含各种配置参数的对象。 **三、插件功能特性** 1. **默认值和范围**:你可以设置初始的默认...
【ASP.NET AJAX Rating 控件详解】 ASP.NET AJAX Rating 控件是微软在ASP.NET框架中提供的一种交互性极强的UI组件,它允许用户通过星形评分系统对内容进行评价。这个控件是ASP.NET AJAX Control Toolkit的一部分,...
【标题】"前端项目-bootstrap-star-rating.zip"是一个前端开发资源包,主要包含了一个基于jQuery的星级评价插件。这个插件的设计目标是为用户提供一种直观、易于使用的评级系统,适用于各种网页应用,如产品评价、...
"star_rating"是一个关于实现星状评分系统的项目,利用AJAX技术进行动态更新,从而提供用户友好的交互体验。在Web开发中,这样的系统常见于评价、评分或反馈功能,如电商平台的商品评价、电影评分等场景。以下是这个...
Ajax Star Rate星号评分系统是一种常见的用户交互设计,它允许用户通过点击星号来对内容进行评分,同时这些评分能够实时地通过Ajax技术传递到服务器,无需页面刷新。这种技术在网页应用中广泛使用,特别是在电影评价...
ASP.NET AJAX Toolkit Rating 是一个强大的开发工具,专为在Web应用程序中实现用户友好的星级打分功能而设计。这个控件充分利用了ASP.NET AJAX框架,提供了丰富的交互性和异步更新功能,无需页面刷新即可实现评分...
标题 "5 Star Rating using Javascript.zip" 提供了一个关于使用JavaScript实现五星评级系统的学习资源。JavaScript是一种广泛用于网页和网络应用的编程语言,特别是在交互性方面。在这个项目中,我们将探讨如何利用...
CurrentRating="3" StarCssClass="ratingStar" FilledStarCssClass="filledRatingStar" EmptyStarCssClass="emptyRatingStar" OnChanged="Rating1_Changed" /> ``` 至于Calendar控件与TextBox的绑定,可以使用...
在Laravel框架中开发一个评级系统,涉及到许多关键知识点,包括数据库设计、Eloquent ORM的使用、表单处理、路由定义、视图渲染以及Ajax交互等。以下将详细阐述这些内容。 1. **数据库设计**:评级系统的核心是存储...
5. **AJAX交互**:如果需要将用户的评分保存到服务器,可以使用jQuery的`$.ajax`或`$.post`方法进行异步请求,将评分值发送到后台,同时接收返回的确认信息。 6. **可配置性**:一个好的星星评分插件应该具备可配置...
<div id="starRating"> <input type="radio" name="rating" value="1" id="star1"> <label for="star1">1 <input type="radio" name="rating" value="2" id="star2"> <label for="star2">2 ...
var elements = document.querySelectorAll('#rating .star'); // 更新所有星星的选中状态 for (var i = 0; i ; i++) { elements[i].classList.remove('selected'); if (i < rating) { elements[i].class...
<input id="star-rating" type="number" class="rating" data-min="0" data-max="5" data-step="1" data-size="xs" /> ``` 这个`<input>`元素是评分插件的核心,`data-min`、`data-max`、`data-step`分别代表...
此外,还可以使用现成的jQuery插件库,如RateYo、Star Rating等,它们提供了更丰富的功能和自定义选项,可以快速实现功能完善的星级评论系统。 总结,利用jQuery创建星级评论表单,可以极大地提升用户体验,同时...
"star-rating"就是一个专门为WordPress设计的简单星级评分插件,它允许用户对内容进行评分,提升网站的参与度。 JavaScript是一种广泛使用的客户端编程语言,它在网页交互方面扮演着关键角色。在这个星级评分插件中...
- `class='rating-gly-star'` 和 `class='rating-stars'` 的元素用于创建星星的图形,通过改变它们的宽度来模拟星星被选中的效果。具体的样式可能在外部CSS文件中定义,或者内联在HTML中。 在实际应用中,这些星星...
例如,我们可以用Bootstrap的`glyphicon-star-empty`(空星)和`glyphicon-star`(实心星)图标类。 ```html <div class="rating"> <span class="glyphicon glyphicon-star"> <span class="glyphicon glyphicon-...
var rating = $('#rating'); var selectedStar = null; // 鼠标悬停事件 rating.on('mousemove', 'span', function(e) { var index = $(this).index(); updateStars(index + 1); }); // 鼠标离开事件 ...