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类定义例子
Sep 12 Javascript
jQuery 使用手册(一)
Sep 23 Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
Mar 31 Javascript
Bootstrap页面布局基础知识全面解析
Jun 13 Javascript
使用angularjs.foreach时return的问题解决
Sep 30 Javascript
express express-session的使用小结
Dec 12 Javascript
JavaScript惰性求值的一种实现方法示例
Jan 11 Javascript
js实现京东秒杀倒计时功能
Jan 21 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
Feb 14 jQuery
详解可以用在VS Code中的正则表达式小技巧
May 14 Javascript
微信小程序常用的3种提示弹窗实现详解
Sep 19 Javascript
vue实现简单数据双向绑定
Apr 28 Vue.js
详解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
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
js数组的操作详解
2013/03/27 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
2015/10/23 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
微信小程序 MINA文件结构
2016/10/17 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
微信小程序Page中data数据操作和函数调用方法
2019/05/08 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
React实现全选功能
2020/08/25 Javascript
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
python构建自定义回调函数详解
2017/06/20 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
NumPy统计函数的实现方法
2020/01/21 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
基于Python的OCR实现示例
2020/04/03 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
python 如何区分return和yield
2020/09/22 Python
CSS3制作酷炫的三维相册效果
2016/07/01 HTML / CSS
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
土木工程师岗位职责
2013/11/24 职场文书
奶茶店创业计划书
2014/08/14 职场文书
2015年库房工作总结
2015/04/30 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
Oracle表空间与权限的深入讲解
2021/11/17 Oracle
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js