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用户注册提示效果的简单实例
Aug 17 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
Feb 28 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
Feb 16 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
May 18 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
Jun 13 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
Aug 29 Javascript
AngularJS入门教程之模块化操作用法示例
Nov 02 Javascript
ES6新特性之变量和字符串用法示例
Apr 01 Javascript
详解React+Koa实现服务端渲染(SSR)
May 23 Javascript
vue生命周期和react生命周期对比【推荐】
Sep 19 Javascript
js canvas实现二维码和图片合成的海报
Nov 19 Javascript
在webstorm中配置less的方法详解
Sep 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
PHP Smarty生成EXCEL文档的代码
2008/08/23 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
2011/07/04 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
2016/06/12 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
利用JS做网页特效_大图轮播(实例讲解)
2017/08/09 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
解决vue-loader加载不上的问题
2020/10/21 Javascript
Vant picker 多级联动操作
2020/11/02 Javascript
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
python实现学员管理系统
2019/02/26 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
使用css实现android系统的loading加载动画
2019/07/25 HTML / CSS
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
一套软件开发工程师笔试题
2015/05/18 面试题
建设幸福中国演讲稿
2014/09/11 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
技术转让协议书
2016/03/19 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang
JavaScript 反射学习技巧
2021/10/16 Javascript