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 相关文章推荐
javascript offsetX与layerX区别
Mar 12 Javascript
JQuery学习笔录 简单的JQuery
Apr 09 Javascript
js关闭模态窗口刷新父页面或跳转页面
Dec 13 Javascript
使用javascript实现简单的选项卡切换
Jan 09 Javascript
JavaScript中的lastIndexOf()方法使用详解
Jun 06 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
Sep 20 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
Sep 24 Javascript
jQuery Checkbox 全选 反选的简单实例
Nov 29 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
Sep 20 Javascript
详解vantUI框架在vue项目中的应用踩坑
Dec 06 Javascript
公众号SVG动画交互实战代码
May 31 Javascript
基于javascript原生判断DOM是否加载完毕
Oct 14 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
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
Yii调试SQL的常用方法
2014/07/09 PHP
PHP goto语句用法实例
2019/08/06 PHP
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
JavaScript中获取鼠标位置相关属性总结
2014/10/11 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
整理JavaScript创建对象的八种方法
2015/11/03 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
2017/02/18 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
2017/05/22 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
2019/04/11 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
Python使用django获取用户IP地址的方法
2015/05/11 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
python实现桌面气泡提示功能
2019/07/29 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
如何使用python写截屏小工具
2020/09/29 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
有影响力的品牌之家:Our Social Collective
2019/06/08 全球购物
马云的职业生涯规划之路
2014/01/01 职场文书
网络编辑岗位职责
2014/03/18 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
会计学习心得体会
2014/09/09 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS