JS实现星级评价
说明:
本方法采用了Jquery库,暂时检测兼容IE8版本。本示例的2种颜色的星星都是放入了一张png图片当中,当然还有其他的一些实现思路。本示例展示的情况是当前页面只有一个星级评价的情况。
思路:
通过对星级显示元素的,mouseenter,mouseout,click 三个事件的监听,从而星星显示的个数。其中我用了2个变量(temp_value,choice_value)来存放当前选定星级的值和当前临时的星级值;
- temp_value : 临时的星级值;
- choice_value : 选择的星级值;
- mouseenter : 鼠标移入,获取当前所在的星星级别赋予temp_value,调整当前星星的图片颜色;
- mouseout : 鼠标移除,通过对比choice_value值,重新调整星星图片颜色;
- click : 鼠标单击后,获取当前的星级值,赋值给choice_value;(注意在click前已经进行过mouseenter事件了,click后进行了mouseout事件了)
- 当完成选定值后,在需要提交评价值的时候,可以通过JS去获取变量choice_value的值;
HTML结构代码:
<h1>评价:</h1>
<ul id="star">
<li title="很差" id="star1" star="1"></li>
<li title="差" id="star2" star="2"></li>
<li title="一般" id="star3" star="3"></li>
<li title="好" id="star4" star="4"></li>
<li title="很好" id="star5" star="5"></li>
</ul>
注:如果页面中不止一个星级评价,也就是出现多行的情况,这个时候只需要对Dom中li的id进行一些改造,加上动态的下标,从而区分不同的元素。另外有个点就是,我把选定的星级值放入的是JS变量中去了,多个评价值的情况下,建议可以在Dom中加上隐藏表单域去存放选定的当前星级值。
JS实现代码:
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript"> $(document).ready(function() { var _temp_value = 0,//鼠标hover时的等级value
choiceValue = 0;//默认选定的等级值为1 //鼠标移入的时候
$("#star li").mouseenter(function() {
//获取当前的星级
_temp_value = new Number($(this).attr("star"));
showStar(); //鼠标移入的时候
}).mouseout(function(){
hideStar(); //鼠标移入的时候
}).click(function(){
//单击时,设定当前的选定值
choiceValue = _temp_value;
hideSatr();
}); //星级显示
function showStar() {
for (var i = 1 ; i < _temp_value+1; ++i) {
$("#star"+i).addClass("choice");
}
} function hideStar() {
for (var i = 5 ; i > choiceValue; --i) {
$("#star"+i).removeClass("choice");
}
}
});
</script>
如有问题,请联系我!这里是Demo地址:http://xiaoweijs.duapp.com/demo/star-level/index.html
JS实现星级评价的更多相关文章
- iOS:自己写的一个星级评价的小Demo
重新整理了下自己星级评价的Demo,可以展示星级评价,可以动态修改星级. github的地址:https://github.com/hunterCold/HYBStarEvaluationView a ...
- js实现星级评分效果(非常规5个li代码)
1. 前言 此方案受到JS单行写一个评级组件启发,自己写了一个简单Demo. 功能有正常滑动,动态显示实心星星个数:当点击确认,则保持当前的实心星星个数:再移动时未点击,则离开后还是保持之前的状态. ...
- js 实现星级评分
最近的项目中有一个星级评分的需求, 自己就写了一下, 由于可能一个页面要用到多个,就采用了面向对象的写法. 用到的png图片也放到这里. js要用到jquery. css: .sr-star{ ...
- js实现星级评分之方法一
利用一个星级评分的小案例,来逐步封装js星级评分插件. 从最基础的js知识,通过一个小的demo,逐步学习js的面向对象知识. 从浅到深,逐步递进. 图片素材 <!DOCTYPE html> ...
- jquery 星级评价插件jquery Raty的使用
需要引入的js <script type="text/javascript" src="<%=basePath%>resources/js/jquery ...
- 原生JS实现-星级评分系统
今天我又写了个很酷的实例:星级评分系统(可自定义星星个数.显示信息) sufuStar.star();使用默认值5个星星,默认信息 var msg = [........]; sufuStar.sta ...
- 用这个插件jquery.raty.js————用于星星评价(这个案例用于后台传数据给我,前台显示星星个数)
1.引入jquery.js文件 2.引入jquery.raty.js 3.页面中放在这个:<span class="readOnly" data-path="ima ...
- jquery实现仿商品星级评价
一,HTML部分 <div id="rating-star"> <a href="#">0</a> < ...
- vue实现星级评价效果
希望对你们有用,已经自己试过可以的才发布出来的 效果如下: html: <template> <div class="evaStar"> <ul cl ...
随机推荐
- Windows 2003 Server C盘空间被IIS日志文件消耗殆尽案例
今天突然收到手头一台数据库服务器的磁盘空间告警邮件,C盘空间只剩下5.41GB大小(当系统磁盘剩余空间小于总大小的10%时,发出告警邮件),如下图所示: 由于还有一些微弱印象:前阵子这台服务器的C盘剩 ...
- MVC如何在单独的类库中添加区域
今天要做一个将区域放到单独的类库中的程序,其实就是多加几个引用的问题,但是我比较喜欢这种设计结构,因为这样的话可以把单独的应用逻辑放在单独的类库中处理,项目看起来更清晰分明,所以写了这个随笔. 首先创 ...
- python文件和元组
python文件操作 相较于java,Python里的文件操作简单了很多 python 获取当前文件所在的文件夹: os.path.dirname(__file__) 写了一个工具类,用来在当前文件夹 ...
- Java并发大师Brain Goetz和Doug Lea 的中英文博客文章地址
Java并发大师Brain Goetz和Doug Lea是Java并发方面最权威的人物,他的文章绝对是最具有参考价值的,值得仔仔细细的推敲和研究. Brain Goetz 中文地址:http://ww ...
- 《SQL Server企业级平台管理实践》读书笔记——SQL Server数据库文件分配方式
1.文件分配方式以及文件空间检查方法 最常用的检查数据文件和表大小的命令就是:sp_spaceused 此命令有三个缺陷:1.无法直观的看出每个数据文件和日志文件的使用情况.2.这个存储过程依赖SQL ...
- cocos2d-x之加速度传感器初试
bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Device::setAccelerometerEnabled(tr ...
- 构建多模块的Maven项目
在Eclipse下创建一个maven项目,该项目有多个模块组成. 1.创建父项目 File->New->Project->Maven->Maven Project(图一) ...
- 探索 OpenStack 之(14):OpenStack 中 RabbitMQ 的使用
本文是 OpenStack 中的 RabbitMQ 使用研究 两部分中的第一部分,将介绍 RabbitMQ 的基本概念,即 RabbitMQ 是什么.第二部分将介绍其在 OpenStack 中的使用. ...
- python中list注意事项
今天写python出了一个小插曲,具体情况见代码: >>> a = [1,2,3] >>> import queue >>> q = queue. ...
- AC日记——codevs 1688 求逆序对
1688 求逆序对 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 给定一个序列a1,a2,…, ...