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代码
Dec 26 Javascript
jQuery Lightbox 图片展示插件使用说明
Apr 25 Javascript
javascript attachEvent绑定多个事件执行顺序问题
Oct 20 Javascript
jQuery boxy弹出层插件中文演示及使用讲解
Feb 24 Javascript
修改jQuery Validation里默认的验证方法
Feb 14 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
Nov 28 Javascript
动态显示可输入的字数提示还可以输入的字数
Apr 01 Javascript
js中split和replace的用法实例
Feb 28 Javascript
微信JS-SDK选取手机照片上传功能
Apr 21 Javascript
利用js实现前后台传送Json的示例代码
Mar 29 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
Jul 24 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
Nov 19 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之源码目录结构与功能说明
2016/06/01 PHP
Laravel 之url参数,获取路由参数的例子
2019/10/21 PHP
ExtJS 2.2.1的grid控件在ie6中的显示问题
2009/05/04 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
jQuery ajax cache缓存问题
2010/07/01 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
angular *Ngif else用法详解
2020/12/15 Javascript
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
python线程join方法原理解析
2020/02/11 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
python 实现客户端与服务端的通信
2020/12/23 Python
python爬取微博评论的实例讲解
2021/01/15 Python
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
Linux文件系统类型
2012/02/15 面试题
新闻传媒系求职信范文
2014/04/19 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
有关爱国演讲稿
2014/05/07 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
2014年银行客户经理工作总结
2014/11/12 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
办公室禁烟通知
2015/04/23 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
JavaScript实现简单拖拽效果
2021/09/15 Javascript