JS实现评价的星星功能


Posted in Javascript onAugust 20, 2017

刚开始接触写星星评价时,哇!估计脑子刚被驴踢了,竟然想到了最笨的办法-手工画五角星。妈呀! css样式都写了好大一串,还沾沾自喜终于画出来了,然后瞅一瞅旁边的妹子写得怎么样了,哇!人家机智的!直接用符号★就解决了!!!唉,智商捉急呀!

先上图看看吧:

JS实现评价的星星功能

虽然简单,还是有几个注意的地方:

1. 未点击时的hover效果,星星会随鼠标移动亮起来喔。

2. 点击后关闭hover效果。

3. 点击同一颗星星,星星可以随时换色。

具体代码展示:

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  </head>
  <style type="text/css">
    .stars{
      white-space: nowrap;
      text-align: center;
      margin-top: 20px;
      margin-bottom: 20px;
    }
    .stars li{
      display: inline-block;
      color: #ADADAD;
      font-size: 40px;
    }
  </style>
  <body>
    <ul class="stars">
      <li>★</li>
      <li>★</li>
      <li>★</li>
      <li>★</li>
      <li>★</li>
    </ul>
    <script src="../../js/common/jquery-git.js"></script>
    <script>
    $(function() {
        //为星星设置hover效果
        var isClicked = false;
        var beforeClickedIndex = -1;
        var clickNum = 0; //点击同一颗星次数
        $('li').hover(
          function() {
            if(!isClicked) {
              $(this).css('color', '#F0AD4E');
              var index = $(this).index();
              for(var i = 0; i <= index; i++) {
                $('li:nth-child(' + i + ')').css('color', '#F0AD4E');
              }
            }
          },
          function() {
            if(!isClicked) {
              $('li').css('color', '#ADADAD');
            }
          }
        );
        //星星点击事件
        $('li').click(function() {
          $('li').css('color', '#ADADAD');
          isClicked = true;
          var index = $(this).index();
          for(var i = 1; i <= index+1; i++) {
            $('li:nth-child(' + i + ')').css('color', '#F0AD4E');
          }
          if(index == beforeClickedIndex) { //两次点击同一颗星星 该星星颜色变化
            clickNum++;
            if(clickNum % 2 == 1) {
              $('li:nth-child(' + (index + 1) + ')').css('color', '#ADADAD');
            } else {
              $('li:nth-child(' + (index + 1) + ')').css('color', '#F0AD4E');
            }
          } else {
            clickNum = 0;
            beforeClickedIndex = index;
          }
        });
      });
    </script>
  </body>
</html>

总结

以上所述是小编给大家介绍的JS实现评价的星星功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
JQuery实现自定义对话框的代码
Jun 15 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
Mar 13 Javascript
Javascript中实现String.startsWith和endsWith方法
Jun 10 Javascript
简介AngularJS的视图功能应用
Jun 17 Javascript
setTimeout学习小结
Feb 08 Javascript
防止重复发送 Ajax 请求
Feb 15 Javascript
详解AngularJS2 Http服务
Jun 26 Javascript
JS实现为动态创建的元素添加事件操作示例
Mar 17 Javascript
React Native开发封装Toast与加载Loading组件示例
Sep 08 Javascript
openlayers4.6.5实现距离量测和面积量测
Sep 25 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
Oct 23 Javascript
js实现头像上传并且可预览提交
Dec 25 Javascript
详解A标签中href=&quot;&quot;的几种用法
Aug 20 #Javascript
Cropper.js 实现裁剪图片并上传(PC端)
Aug 20 #Javascript
Bootstrap 模态框(Modal)带参数传值实例
Aug 20 #Javascript
mui 打开新窗口的方式总结及注意事项
Aug 20 #Javascript
ES6扩展运算符的用途实例详解
Aug 20 #Javascript
关于JavaScript的单双引号嵌套问题
Aug 20 #Javascript
Vue动态组件实例解析
Aug 20 #Javascript
You might like
ThinkPHP查询返回简单字段数组的方法
2014/08/25 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
JavaScript Event学习第五章 高级事件注册模型
2010/02/07 Javascript
juqery 学习之四 筛选查找
2010/11/30 Javascript
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
jQuery中的on与bind绑定事件区别实例详解
2017/02/28 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
浅析Python中的多条件排序实现
2016/06/07 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
Python模块的加载讲解
2019/01/15 Python
python之信息加密题目详解
2019/06/26 Python
在django模板中实现超链接配置
2019/08/21 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
浅析Python __name__ 是什么
2020/07/07 Python
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
html5开发之viewport使用
2013/10/17 HTML / CSS
澳大利亚电子产品购物网站:Dick Smith
2017/02/02 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
最新销售员个人自荐信
2013/09/21 职场文书
工程技术员岗位职责
2014/03/02 职场文书
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
优秀班组长事迹
2014/05/31 职场文书
小学语文业务学习材料
2014/06/02 职场文书
清明节文明祭祀倡议书
2015/04/28 职场文书
未婚证明格式
2015/06/15 职场文书