JS实现带提示的星级评分效果完整实例


Posted in Javascript onOctober 30, 2015

本文实例讲述了JS实现带提示的星级评分效果。分享给大家供大家参考,具体如下:

这是一款JS仿淘宝网的星级评分系统,鼠标放在上边可以显示星级代表的评分级别,鼠标点击时会选中当前的星级,目前此功能在网页上十分流行,虽然是仿做的,但已经很不错的功能了,希望大家喜欢!

运行效果截图如下:

JS实现带提示的星级评分效果完整实例

在线演示地址如下:

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>星级评分系统</title>
<style> 
body,div,ul,li,p{margin:0;padding:0;}
body{color:#666;font:12px/1.5 Arial;}
ul{list-style-type:none;}
#star{position:relative;width:600px;margin:10px auto;}
#star ul,#star span{float:left;display:inline;height:19px;line-height:19px;}
#star ul{margin:0 10px;}
#star li{float:left;width:24px;cursor:pointer;text-indent:-9999px;background:url(images/star.png) no-repeat;}
#star strong{color:#f60;padding-left:10px;}
#star li.on{background-position:0 -28px;}
#star p{position:absolute;top:20px;width:159px;height:60px;display:none;background:url(images/icon.gif) no-repeat;padding:7px 10px 0;}
#star p em{color:#f60;display:block;font-style:normal;}
</style>
<script type="text/javascript"> 
window.onload = function ()
{
 var oStar = document.getElementById("star");
 var aLi = oStar.getElementsByTagName("li");
 var oUl = oStar.getElementsByTagName("ul")[0];
 var oSpan = oStar.getElementsByTagName("span")[1];
 var oP = oStar.getElementsByTagName("p")[0];
 var i = iScore = iStar = 0;
 var aMsg = [
    "很不满意|差得太离谱,与卖家描述的严重不符,非常不满",
    "不满意|部分有破损,与卖家描述的不符,不满意",
    "一般|质量一般,没有卖家描述的那么好",
    "满意|质量不错,与卖家描述的基本一致,还是挺满意的",
    "非常满意|质量非常好,与卖家描述的完全一致,非常满意"
    ]
 for (i = 1; i <= aLi.length; i++)
 {
  aLi[i - 1].index = i;
  //鼠标移过显示分数
  aLi[i - 1].onmouseover = function ()
  {
   fnPoint(this.index);
   //浮动层显示
   oP.style.display = "block";
   //计算浮动层位置
   oP.style.left = oUl.offsetLeft + this.index * this.offsetWidth - 104 + "px";
   //匹配浮动层文字内容
   oP.innerHTML = "<em><b>" + this.index + "</b> 分 " + aMsg[this.index - 1].match(/(.+)\|/)[1] + "</em>" + aMsg[this.index - 1].match(/\|(.+)/)[1]
  };
  //鼠标离开后恢复上次评分
  aLi[i - 1].onmouseout = function ()
  {
   fnPoint();
   //关闭浮动层
   oP.style.display = "none"
  };
  //点击后进行评分处理
  aLi[i - 1].onclick = function ()
  {
   iStar = this.index;
   oP.style.display = "none";
   oSpan.innerHTML = "<strong>" + (this.index) + " 分</strong> (" + aMsg[this.index - 1].match(/\|(.+)/)[1] + ")"
  }
 }
 //评分处理
 function fnPoint(iArg)
 {
  //分数赋值
  iScore = iArg || iStar;
  for (i = 0; i < aLi.length; i++) aLi[i].className = i < iScore ? "on" : "";
 }
};
</script>
</head>
<body>
<div id="star">
 <span>点击星星就能打分</span>
 <ul>
 <li><a href="javascript:;">1</a></li>
 <li><a href="javascript:;">2</a></li>
 <li><a href="javascript:;">3</a></li>
 <li><a href="javascript:;">4</a></li>
 <li><a href="javascript:;">5</a></li>
 </ul>
 <span></span>
 <p></p>
</div>
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
项目实践之javascript技巧
Dec 06 Javascript
javascript重写alert方法的实例代码
Mar 29 Javascript
js语法学习之判断一个对象是否为数组
May 13 Javascript
vue.js实现刷新当前页面的方法教程
Jul 05 Javascript
在Vue中使用echarts的实例代码(3种图)
Jul 10 Javascript
Angular实现响应式表单
Aug 04 Javascript
JS脚本实现网页自动秒杀点击
Jan 11 Javascript
详解vue 兼容IE报错解决方案
Dec 29 Javascript
js实现漂亮的星空背景
Nov 01 Javascript
js HTML DOM EventListener功能与用法实例分析
Apr 27 Javascript
Vue 构造选项 - 进阶使用说明
Aug 14 Javascript
vue elementUI批量上传文件
Apr 26 Vue.js
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
Oct 30 #Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
Oct 30 #Javascript
基于jQuery实现的美观星级评论打分组件代码
Oct 30 #Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
Oct 30 #Javascript
自己动手写的javascript前端等待控件
Oct 30 #Javascript
jQuery实现的仿百度分页足迹效果代码
Oct 30 #Javascript
JavaScript获取function所有参数名的方法
Oct 30 #Javascript
You might like
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
去除链接虚线全面分析总结
2006/08/15 Javascript
动态控制Table的js代码
2007/03/07 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
2016/02/17 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
2020/10/27 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
python修改操作系统时间的方法
2015/05/18 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
资生堂美国官网:Shiseido美国
2016/09/02 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
完美的中文自荐信
2014/05/24 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
教师一帮一活动总结
2014/07/08 职场文书
毕业证代领委托书
2014/09/26 职场文书
辞职书格式样本
2015/02/26 职场文书
美术教师求职信范文
2015/03/20 职场文书
党员反邪教心得体会
2016/01/15 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书
JAVA springCloud项目搭建流程
2022/05/11 Java/Android