使用jQuery实现点评星星效果

2024-03-16 11:08

本文主要是介绍使用jQuery实现点评星星效果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用jQuery实现点评星星效果


 


 

 

没什么好说的,直接上代码吧

 

1. html代码

 

Html代码   收藏代码
  1. <table class="block">  
  2.     <tr>  
  3.         <td>  
  4.             <span class="label">总体评价<em>*</em>:</span>  
  5.         </td>  
  6.         <td>  
  7.             <div class="rating-wrap">  
  8.                 <ul class="rating-wrap-ul"  onmouseout="onUlMouseOut()" onmouseover="onUlMouseOver()">  
  9.                     <li><a class="one-star" title="很差" data-hint="很差" href="javascript:clickStar(1);" onmouseover="onLiMouseOver(1)" onmouseout="onLiMouseOut()"></a></li>  
  10.                     <li><a class="two-stars" title="差" data-hint="差" href="javascript:clickStar(2);" onmouseover="onLiMouseOver(2)" onmouseout="onLiMouseOut()"></a></li>  
  11.                     <li><a class="three-stars" title="还行" data-hint="还行" href="javascript:clickStar(3);" onmouseover="onLiMouseOver(3)" onmouseout="onLiMouseOut()"></a></li>  
  12.                     <li><a class="four-stars" title="好" data-hint="好" href="javascript:clickStar(4);" onmouseover="onLiMouseOver(4)" onmouseout="onLiMouseOut()"></a></li>  
  13.                     <li><a class="five-stars" title="很好" data-hint="很好" href="javascript:clickStar(5);" onmouseover="onLiMouseOver(5)" onmouseout="onLiMouseOut()"></a></li>  
  14.                 </ul>  
  15.             </div>  
  16.             <span id="ratingText" class="active-hint" innerText=""></span>  
  17.         </td>  
  18.     </tr>  
  19.     <tr>  
  20.         <td>  
  21.             <span class="label">评价<em>*</em>:</span>  
  22.         </td>  
  23.         <td>  
  24.             <span class="note">(50-2000个字)</span>  
  25.             <span id="textCount" class="note" innerText=""></span>  
  26.         </td>  
  27.     </tr>  
  28.     <tr>  
  29.         <td>  
  30.         </td>  
  31.         <td>  
  32.             <textarea name="appraiseText" id="appraiseText" class="form-content-block form-textarea" rows="12"></textarea>  
  33.         </td>  
  34.     </tr>  
  35.     <tr>  
  36.         <td>  
  37.         </td>  
  38.         <td align="right">  
  39.             <input type="button" value="提交" onclick="submitAppraise()">  
  40.             <input type="button" value="关闭" onclick=" ">  
  41.         </td>  
  42.     </tr>  
  43. </table>  

 

 

2. 所需要的css

 

Css代码   收藏代码
  1. body {  
  2.     color: #333;  
  3.     font: normal normal normal 12px/1.5 Arial, 宋体, sans-serif;  
  4. }  
  5. .block{  
  6.     clear: both;  
  7.     margin-bottom:20px;  
  8.     margin-bottom: 10px;  
  9.     zoom: 1;  
  10.     padding:5px 11px;border:1px solid #F5EEE8;  
  11.     padding-top:10px;margin:0 10px 0;  
  12.     padding-bottom:20px;border-bottom:1px dashed #E4E4E4;  
  13.     margin:10px auto;padding:0;border:none;  
  14. }  
  15.   
  16. .label{  
  17.     float:right;  
  18.     margin-right: 10px;  
  19.     text-align: right;  
  20.     font-weight: normal;  
  21.     font-style:normal;  
  22.     width: 94px;  
  23. }  
  24. em{  
  25.     margin-right:5px;  
  26.     color:#c00;  
  27.     font-weight:bold;  
  28.     font-style:normal;  
  29.     margin-left:2px;  
  30. }  
  31. .note {  
  32.     color: #999;  
  33. }  
  34.   
  35. .form-textarea{  
  36.     float: left;  
  37.     font-family: Tahoma, Geneva, sans-serif;  
  38.     margin-right: 5px;  
  39.     width: 598px;  
  40.     zoom: 1;  
  41.     font-family: inherit;  
  42.     font-size: 100%;  
  43.     -webkit-appearance: textarea;  
  44.     -webkit-box-orient: vertical;  
  45.     -webkit-rtl-ordering: logical;  
  46.     -webkit-user-select: text;  
  47.     background-color: white;  
  48.     border: 1px solid;  
  49.     cursor: auto;  
  50.     padding: 2px;  
  51.     resize: auto;  
  52.     white-space: pre-wrap;  
  53.     word-wrap: break-word;  
  54. }  
  55.           
  56. .rating-wrap {  
  57.     display: inline-block;  
  58.     float: left;  
  59.     position: relative;  
  60.     top: -2px;  
  61.     width: 89px;  
  62.     height: 20px;  
  63.     margin-right: 5px;  
  64.     padding: 4px 0 0 5px;  
  65.     border: 1px solid #EFE0D7;  
  66.     background: #FFF9F1;  
  67.     z-index: 0;  
  68. }  
  69. .rating-wrap ul,.rating-wrap a:hover {  
  70.     background-image: url(../images/star_shade.png);  
  71.     background-repeat: no-repeat;  
  72. }  
  73.   
  74. .rating-wrap ul {  
  75.     -webkit-padding-start: 40px;  
  76.     display: block;  
  77.     list-style-type: disc;  
  78.     margin: 1em 0px;  
  79.     border: 0px;  
  80.     margin: 0px;  
  81.     outline: 0px;  
  82.     padding: 0px;  
  83.     list-style: none;  
  84.     position: relative;  
  85.     width: 85px;  
  86.     height: 16px;  
  87.     background-position: 0 -90px;  
  88.     z-index: 10;  
  89. }  
  90.   
  91. .rating-wrap li {  
  92.     display: inline;  
  93. }  
  94.   
  95. .rating-wrap a {  
  96.     zoom: 1;  
  97.     position: absolute;  
  98.     left: 0;  
  99.     top: 0;  
  100.     display: block;  
  101.     height: 16px;  
  102. }  
  103.   
  104. .rating-wrap .five-stars {  
  105.     width: 84px;  
  106.     z-index: 10;  
  107.     background-position: 0 0px;  
  108. }  
  109.   
  110. .rating-wrap .four-stars {  
  111.     width: 68px;  
  112.     z-index: 20;  
  113.     background-position: 0 -18px;  
  114. }  
  115.   
  116. .rating-wrap .three-stars {  
  117.     width: 51px;  
  118.     z-index: 30;  
  119.     background-position: 0 -36px;  
  120. }  
  121.   
  122. .rating-wrap .two-stars {  
  123.     width: 34px;  
  124.     z-index: 40;  
  125.     background-position: 0 -54px;  
  126. }  
  127.   
  128. .rating-wrap .one-star {  
  129.     width: 17px;  
  130.     z-index: 50;  
  131.     background-position: 0 -72px;  
  132. }  
  133.   
  134. .active-hint{  
  135.     color: #C00;  
  136.     float: left;  
  137.     padding-top:2px;  
  138.     font-weight: normal;  
  139.     font-style:normal;  
  140. }  

 

 

3. 所需要的javascript代码

 

Js代码   收藏代码
  1. $(document).ready(function(){  
  2.     $("#appraiseText").bind("keydown"function(){  
  3.         var count = $("#appraiseText").val().length;  
  4.         if( count <= 200 ){  
  5.             $("#textCount").html(" 还能输入<font color='green'><b>" + (200 - count) + "</b></font>个字");  
  6.         }else{  
  7.             $("#textCount").html(" 已超出<font color='red'><b>" + (count - 200) + "</b></font>个字");  
  8.         }  
  9.     });   
  10. });  
  11.   
  12. var starValue=0;  
  13. function onUlMouseOut(){  
  14.     var y = -90 + starValue * 18;  
  15.     var position = "0 " + y + "px";  
  16.     $(".rating-wrap-ul").css({  
  17.         "background-position" : position  
  18.     });  
  19. }  
  20.   
  21. function onUlMouseOver(){  
  22.     $(".rating-wrap-ul").css({  
  23.         "background-position" : "0 -90px"  
  24.     });  
  25. }  
  26. function onLiMouseOver(grade){  
  27.     switch(grade){  
  28.         case 1 : document.getElementById("ratingText").innerHTML="很差";break;  
  29.         case 2 : document.getElementById("ratingText").innerHTML="差";break;  
  30.         case 3 : document.getElementById("ratingText").innerHTML="还行";break;  
  31.         case 4 : document.getElementById("ratingText").innerHTML="好";break;  
  32.         case 5 : document.getElementById("ratingText").innerHTML="很好";break;  
  33.         default :  document.getElementById("ratingText").innerHTML="";  
  34.     }  
  35. }  
  36. function onLiMouseOut(){  
  37.     onLiMouseOver(starValue);  
  38. }  
  39. function clickStar(grade){  
  40.     starValue = grade;        
  41.     var y = -90 + grade * 18;  
  42.     var position = "0 " + y + "px";  
  43.     $(".rating-wrap-ul").css({  
  44.         "background-position" : position  
  45.     });  

这篇关于使用jQuery实现点评星星效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/815284

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

C++中悬垂引用(Dangling Reference) 的实现

《C++中悬垂引用(DanglingReference)的实现》C++中的悬垂引用指引用绑定的对象被销毁后引用仍存在的情况,会导致访问无效内存,下面就来详细的介绍一下产生的原因以及如何避免,感兴趣... 目录悬垂引用的产生原因1. 引用绑定到局部变量,变量超出作用域后销毁2. 引用绑定到动态分配的对象,对象

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置