1. 前言

此方案受到JS单行写一个评级组件启发,自己写了一个简单Demo。

功能有正常滑动,动态显示实心星星个数;当点击确认,则保持当前的实心星星个数;再移动时未点击,则离开后还是保持之前的状态。

此demo没有文字信息等提示,可以根据需要自行添加使用。

2. 代码

<!DOCTYPE html>
<html>
<head><title>Star Rating</title><script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script><script type="text/javascript">var lastStarNum =0;function mOut(obj){obj.innerHTML="★★★★★☆☆☆☆☆".slice(5-lastStarNum,10-lastStarNum);}function mOver(){var obj = document.getElementById("starRate");var offsetTopVal  = obj.offsetTop;var pos=getPos(event);//star width is 13.2px,first star is offset 8px from left, near half of star, the star will just become black.//6 is adjust parametervar i = Math.floor((pos.x + 6)/13.2);          //star height is 21pxif(i <= 5 & i > 0&& pos.y < offsetTopVal + 21 && pos.y > offsetTopVal){obj.innerHTML="★★★★★☆☆☆☆☆".slice(5-i,10-i);//console.log("MousePage(x,y)=("+pos.x+" ,"+pos.y+") starNumber="+Math.floor((pos.x+6)/13.2));$(obj).click(function(){lastStarNum = i;})}      }$('*').mousemove(function(){mOver();});function getPos(ev){var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;var scrollLeft=document.documentElement.scrollLeft||document.body.scrollLeft;  return {x: ev.clientX+scrollLeft, y: ev.clientY+scrollTop};     }</script>
</head>
<body>
<div>Star Rating:</div>
<div id="starRate" οnmοuseοver="mOver()"  οnmοuseοut="mOut(this)" style="width:66px;height:21px">☆☆☆☆☆</div></body>
</html>

3.效果

4. 总结

亮点在于"★★★★★☆☆☆☆☆".slice(5-lastStarNum,10-lastStarNum) 的使用,而不需要网上大多数的星级评分系统那样是5个li元素,然后加个class来控制。

  

转载于:https://www.cnblogs.com/fanbi/p/7596102.html

js实现星级评分效果(非常规5个li代码)相关推荐

  1. 移动端星级评分效果的实现

    星级评分在网页当中是经常用到的,今天特地用原生的JS实现了在移动端中的星级评分效果.由于在移动端中是没有鼠标事件的,所以在移动端中的星级评分效果的实现方式要与pc端稍微有点不同,就是要把相应的事件转成 ...

  2. php mysql 星级评分_jQuery+PHP实现星级评分效果

    码农公社  210.net.cn  210= 1024  10月24日一个重要的节日--码农(程序员)节 jQuery+PHP实现星级评分效果,评分功能比较常用,例如商城平台就会有个评分功能,本实例就 ...

  3. 用css实现星级评分效果

    以前看到其他网站实现的实现的星级评分效果,没在意那么多,直到昨天做一个页面需要这个功能效果时,发现自己实现起来还是这么困难,折腾了半天才弄出来. 1. 其实主要是利用背景图片的切换位置来实现星级的效果 ...

  4. html css星级评分,纯css实现星级评分效果

    效果 效果图如下 星级评分 实现思路: 5个类型为radio的input,abel标签修改样式背景图为星星 label标签给每个星星鼠标停留时加注名字 点击星星有放大旋转的动画 dom结构 用form ...

  5. 原生js实现星级评分

    今天来实现下星级评分,后边并跟有评价文字. html代码如下: <span class="star"><b class="ct-star ic-star ...

  6. js版星级评分 入门级 原生js实现

    先理思路: 第一部分:HTML  第二部分:CSS ​​​​​​1.常规部分 通配符 2.居中盒子部分 3. li标签(星星载体)部分 4.满意度盒子部分 5.评语盒子部分 6.星星改变位置部分  第 ...

  7. html 评分星级显示,星级评分效果.html

    jquery鼠标滑过星星区域显示评论信息.评论星星打分jquery特效|jsfoot网页特效 演示 @charset "utf-8"; /* reset */ *{margin:0 ...

  8. 星级评价的代码php,JavaScript_使用jQuery实现星级评分代码分享,前面有一篇原生js实现星级评 - phpStudy...

    使用jQuery实现星级评分代码分享 前面有一篇原生js实现星级评分 .可能覆盖面不是很广,现在给出一个jquery实现的星级评分. http://s.thsi.cn/js/jquery-1.7.2. ...

  9. android自定义控件(星级评分)

    一.背景 视觉过来提了一个需求,要求完成一个星级评分控件,该控件中的星星的颜色需要实现渐变的效果,并且没有渐变的规律,也就是说各个星星的颜色需要不一样,效果如下: 二.问题分析 星星控件对应的控件是a ...

最新文章

  1. 图像分割--PixelNet: Representation of the pixels, by the pixels, and for the pixels
  2. Git中的工作区(Working Directory)、暂存区(stage)和历史记录区(history)
  3. mysql sum计算效率很慢_MySQL基础之分组函数
  4. 计算机三种引用方式,单元格的引用方式有哪几种
  5. 收藏 | 自监督视觉Transformer
  6. latex ht在下一页_告诉我们在下一本出色的领导力著作中要包括的内容
  7. 7000块招不了一个工人
  8. Android lsof查看已打开文件
  9. 美团在ACL2021上提出基于对比学习的文本表示模型,效果提升8%
  10. mysql主从同步开启后的iptables的设定问题
  11. wordpress 表格文字对齐_掌握Word对齐技巧,排版又快又美观
  12. WPS多版本残留_软件分享猫 wps会员的获取
  13. 多款免费可商用的微信小程序开源源码推荐(商城类)
  14. IEEE论文latex模板
  15. iOS 瘦身!一个让 50% 本地图片消失的方案
  16. Python语言在人工智能(AI)中的优势
  17. 哪些平台可以查看医学类文献?
  18. (附源码)小程序springboot口腔诊所预约系统 毕业设计 201738
  19. 【LeetCode 1125】 Smallest Sufficient Team
  20. android 百度地图批量添加标注,百度地图API实战

热门文章

  1. mongodb与java结合_MongoDB初探系列之四:MongoDB与Java共舞
  2. HSDIS工具在macbook M1电脑的安装
  3. LVS(7)——NAT实践
  4. zephyr 系统--- 内存池使用方法
  5. 深入浅出无人机姿态,欧拉角,四元数,指数表示及数据转换与程序实现
  6. Kali更新源 - 由于没有公钥,无法验证下列签名: NO_PUBKEY ED444FF07D8D0BF6
  7. POJ 3281 -- Dining(最大流,拆点建图)
  8. 增长量计算n+1原则_土方量计算方法
  9. Linux watch命令详解
  10. 互斥锁、条件变量、自旋锁、读写锁