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 相关文章推荐
利用js 进行输入框自动匹配字符的小例子
Jun 29 Javascript
推荐5 个常用的JavaScript调试技巧
Jan 08 Javascript
javascript变量声明实例分析
Apr 25 Javascript
JS实现可调整倒计时间代码分享
Aug 18 Javascript
jquery实现的判断倒计时是否结束代码
Feb 05 Javascript
理解javascript定时器中的单线程
Feb 23 Javascript
JS简单获取当前年月日星期的方法示例
Feb 07 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
Mar 09 Javascript
zTree树形插件异步加载方法详解
Jun 14 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
Jul 03 Javascript
layui点击按钮添加可编辑的一行方法
Aug 15 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
Jan 12 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 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
实例介绍PHP删除数组中的重复元素
2019/03/03 PHP
use jscript List Installed Software
2007/06/11 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
JavaScript实现点击文字切换登录窗口的方法
2015/05/11 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
ionic2懒加载配置详解
2017/09/01 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
2017/09/19 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
Python的函数嵌套的使用方法
2014/01/24 Python
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
Python实现深度遍历和广度遍历的方法
2019/01/22 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
python中的global关键字的使用方法
2019/08/20 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
美国女鞋品牌:naturalizer(娜然)
2016/08/01 全球购物
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
老公爱的承诺书
2014/03/31 职场文书
政治思想表现评语
2014/05/04 职场文书
企业法律事务工作总结
2015/08/11 职场文书
亲情作文之母爱
2019/09/25 职场文书
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
使用 Apache 反向代理的设置技巧
2022/01/18 Servers
Python编写冷笑话生成器
2022/04/20 Python