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 相关文章推荐
屏蔽网页右键复制和ctrl+c复制的js代码
Jan 04 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
May 15 Javascript
编程语言JavaScript简介
Oct 16 Javascript
jQuery中slideUp()方法用法分析
Dec 24 Javascript
js实现匹配时换色的输入提示特效代码
Aug 17 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
Nov 24 Javascript
浅析Bootstrap组件之面板组件
May 04 Javascript
js获取新浪天气接口的实现代码
Jun 06 Javascript
原生JS 购物车及购物页面的cookie使用方法
Aug 21 Javascript
vue cli3.0 引入eslint 结合vscode使用
May 27 Javascript
Vue中nprogress页面加载进度条的方法实现
Nov 13 Javascript
原生js实现滑块区间组件
Jan 20 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编程开发怎么提高编程效率 提高PHP编程技术
2015/11/09 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
PHP使用Redis实现Session共享的实现示例
2019/05/12 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
javascript定义函数的方法
2010/12/06 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
web前端开发JQuery常用实例代码片段(50个)
2015/08/28 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
AngularJS 如何在控制台进行错误调试
2016/06/07 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
Python socket实现简单聊天室
2018/04/01 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
The North Face意大利官网:服装、背包和鞋子
2020/06/17 全球购物
电大本科自我鉴定
2014/02/05 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
2016同学毕业寄语大全
2015/12/04 职场文书
医德医风学习心得体会
2016/01/25 职场文书
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python