使用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

相关文章

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2