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 相关文章推荐
实现png图片和png背景透明(支持多浏览器)的方法
Sep 08 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
Dec 03 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
Dec 04 Javascript
JQuery中dataGrid设置行的高度示例代码
Jan 03 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
Mar 18 Javascript
ztree获取当前选中节点子节点id集合的方法
Feb 12 Javascript
JavaScript对象数组排序实例方法浅析
Jun 15 Javascript
JavaScript中如何判断一个值的类型
Sep 15 Javascript
解决vue 引入子组件报错的问题
Sep 06 Javascript
详解vue-element Tree树形控件填坑路
Mar 26 Javascript
JS学习笔记之闭包小案例分析
May 29 Javascript
关于JavaScript中异步/等待的用法与理解
Nov 18 Javascript
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
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
php异常处理方法实例汇总
2015/06/24 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
php精度计算的问题解析
2019/06/21 PHP
js Dialog 实践分享
2012/10/22 Javascript
浅谈javascript中自定义模版
2015/01/29 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
jquery实现图片上传前本地预览功能
2016/05/10 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
2018/08/09 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
Python迭代用法实例教程
2014/09/08 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
Python3获取cookie常用三种方案
2020/10/05 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
大专生自我评价
2014/01/28 职场文书
研讨会主持词
2014/04/02 职场文书
2014年资料员工作总结
2014/11/18 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
2015年网管个人工作总结
2015/05/22 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android