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不同类型数据之间的运算的转换方法
Feb 13 Javascript
jquery禁止回车触发表单提交
Dec 12 Javascript
AngularJS教程之MVC体系结构详解
Aug 16 Javascript
js 获取当前web应用的上下文路径实现方法
Aug 19 Javascript
jQuery读取XML文件的方法示例
Feb 03 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
Jan 31 Javascript
js的各种数据类型判断的介绍
Jan 19 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
Apr 08 Javascript
Electron + vue 打包桌面操作流程详解
Jun 24 Javascript
vue开发移动端底部导航条功能
Apr 08 Javascript
关于小程序优化的一些建议(小结)
Dec 10 Javascript
微信小程序实现拍照和相册选取图片
May 09 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
从零开始的异世界生活:第二季延期后,B站上架了第二部剧场版
2020/05/06 日漫
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
漂亮的widgets,支持换肤和后期开发新皮肤
2007/04/23 Javascript
ExtJS 简介 让你知道extjs是什么
2008/12/29 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
vue使用laydate时间插件的方法
2018/11/14 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
Python程序设计入门(4)模块和包
2014/06/16 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
python基于ID3思想的决策树
2018/01/03 Python
详解Python核心对象类型字符串
2018/02/11 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
Django 开发调试工具 Django-debug-toolbar使用详解
2019/07/23 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
tensorflow 变长序列存储实例
2020/01/20 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
Python Selenium库的基本使用教程
2021/01/04 Python
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
电力安全事故反思
2014/04/27 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
化工专业求职信
2014/07/01 职场文书
会计岗位说明书
2014/07/29 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
食堂管理制度范本
2015/08/04 职场文书
血轮眼轮回眼特效 html+css
2021/03/31 HTML / CSS