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 相关文章推荐
juqery 学习之三 选择器 子元素与表单
Nov 25 Javascript
使用jquery实现图文切换效果另加特效
Jan 20 Javascript
Jquery动态添加及删除页面节点元素示例代码
Jun 16 Javascript
详解javascript遍历方式
Nov 11 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
Aug 05 Javascript
mpvue中使用flyjs全局拦截的实现代码
Sep 13 Javascript
js限制输入框只能输入数字(onkeyup触发)
Sep 28 Javascript
JavaScript实现表单注册、表单验证、运算符功能
Oct 15 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
May 23 Javascript
angular6开发steps步骤条组件
Jul 04 Javascript
layui递归实现动态左侧菜单
Jul 26 Javascript
vue 插槽简介及使用示例
Nov 19 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
php录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
2013/11/08 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
jquery不常用方法汇总
2015/07/26 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
vue项目中锚点定位替代方式
2019/11/13 Javascript
Vue程序化的事件监听器(实例方案详解)
2020/01/07 Javascript
[01:20]DOTA2更新全新英雄 天涯墨客现已加入游戏
2018/08/25 DOTA
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
Django stark组件使用及原理详解
2019/08/22 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
澳大利亚当地最大的时装生产商:Cue
2018/08/06 全球购物
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
美国在线家具网站:GDFStudio
2021/03/13 全球购物
经典c++面试题四
2015/05/14 面试题
素食餐饮项目创业计划书
2014/02/02 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
思想政治表现评语
2015/01/04 职场文书
二手房购房意向书
2015/05/09 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python