A simple star rating widget.
A Pen by Deepak Kamat on CodePen.
| <header class='header text-center'> | |
| <h2>Rating Widget</h2> | |
| <p>A simple star rating widget with <b>jQuery</b> and <b>FontAwesome</b> icons.</p> | |
| </header> | |
| <section class='rating-widget'> | |
| <!-- Rating Stars Box --> | |
| <div class='rating-stars text-center'> | |
| <ul id='stars'> | |
| <li class='star' title='Poor' data-value='1'> | |
| <i class='fa fa-star fa-fw'></i> | |
| </li> | |
| <li class='star' title='Fair' data-value='2'> | |
| <i class='fa fa-star fa-fw'></i> | |
| </li> | |
| <li class='star' title='Good' data-value='3'> | |
| <i class='fa fa-star fa-fw'></i> | |
| </li> | |
| <li class='star' title='Excellent' data-value='4'> | |
| <i class='fa fa-star fa-fw'></i> | |
| </li> | |
| <li class='star' title='WOW!!!' data-value='5'> | |
| <i class='fa fa-star fa-fw'></i> | |
| </li> | |
| </ul> | |
| </div> | |
| <div class='success-box'> | |
| <div class='clearfix'></div> | |
| <img alt='tick image' width='32' src='data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA0MjYuNjY3IDQyNi42NjciIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQyNi42NjcgNDI2LjY2NzsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+CjxwYXRoIHN0eWxlPSJmaWxsOiM2QUMyNTk7IiBkPSJNMjEzLjMzMywwQzk1LjUxOCwwLDAsOTUuNTE0LDAsMjEzLjMzM3M5NS41MTgsMjEzLjMzMywyMTMuMzMzLDIxMy4zMzMgIGMxMTcuODI4LDAsMjEzLjMzMy05NS41MTQsMjEzLjMzMy0yMTMuMzMzUzMzMS4xNTcsMCwyMTMuMzMzLDB6IE0xNzQuMTk5LDMyMi45MThsLTkzLjkzNS05My45MzFsMzEuMzA5LTMxLjMwOWw2Mi42MjYsNjIuNjIyICBsMTQwLjg5NC0xNDAuODk4bDMxLjMwOSwzMS4zMDlMMTc0LjE5OSwzMjIuOTE4eiIvPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K'/> | |
| <div class='text-message'></div> | |
| <div class='clearfix'></div> | |
| </div> | |
| </section> | |
| <footer id="a-footer"> | |
| <div class="new-react-version"> | |
| <div class="react-svg-logo"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3"> | |
| <g fill="#61DAFB"> | |
| <path d="M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z"/> | |
| <circle cx="420.9" cy="296.5" r="45.7"/> | |
| <path d="M520.5 78.1z"/> | |
| </g> | |
| </svg></div> | |
| Love React? Check the new React version of this widget you can use right out of the box! <div><a href="https://goo.gl/DtrXHy" target="_blank"> | |
| React Version of Simple Rating Widget</a></div> | |
| </div> | |
| </footer> |
A simple star rating widget.
A Pen by Deepak Kamat on CodePen.
| $(document).ready(function(){ | |
| /* 1. Visualizing things on Hover - See next part for action on click */ | |
| $('#stars li').on('mouseover', function(){ | |
| var onStar = parseInt($(this).data('value'), 10); // The star currently mouse on | |
| // Now highlight all the stars that's not after the current hovered star | |
| $(this).parent().children('li.star').each(function(e){ | |
| if (e < onStar) { | |
| $(this).addClass('hover'); | |
| } | |
| else { | |
| $(this).removeClass('hover'); | |
| } | |
| }); | |
| }).on('mouseout', function(){ | |
| $(this).parent().children('li.star').each(function(e){ | |
| $(this).removeClass('hover'); | |
| }); | |
| }); | |
| /* 2. Action to perform on click */ | |
| $('#stars li').on('click', function(){ | |
| var onStar = parseInt($(this).data('value'), 10); // The star currently selected | |
| var stars = $(this).parent().children('li.star'); | |
| for (i = 0; i < stars.length; i++) { | |
| $(stars[i]).removeClass('selected'); | |
| } | |
| for (i = 0; i < onStar; i++) { | |
| $(stars[i]).addClass('selected'); | |
| } | |
| // JUST RESPONSE (Not needed) | |
| var ratingValue = parseInt($('#stars li.selected').last().data('value'), 10); | |
| var msg = ""; | |
| if (ratingValue > 1) { | |
| msg = "Thanks! You rated this " + ratingValue + " stars."; | |
| } | |
| else { | |
| msg = "We will improve ourselves. You rated this " + ratingValue + " stars."; | |
| } | |
| responseMessage(msg); | |
| }); | |
| }); | |
| function responseMessage(msg) { | |
| $('.success-box').fadeIn(200); | |
| $('.success-box div.text-message').html("<span>" + msg + "</span>"); | |
| } |
| <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> |
| body { | |
| font-family:"Open Sans", Helvetica, Arial, sans-serif; | |
| color:#555; | |
| max-width:680px; | |
| margin:0 auto; | |
| padding:0 20px; | |
| } | |
| * { | |
| -webkit-box-sizing:border-box; | |
| -moz-box-sizing:border-box; | |
| box-sizing:border-box; | |
| } | |
| *:before, *:after { | |
| -webkit-box-sizing: border-box; | |
| -moz-box-sizing: border-box; | |
| box-sizing: border-box; | |
| } | |
| .clearfix { | |
| clear:both; | |
| } | |
| .text-center {text-align:center;} | |
| a { | |
| color: tomato; | |
| text-decoration: none; | |
| } | |
| a:hover { | |
| color: #2196f3; | |
| } | |
| pre { | |
| display: block; | |
| padding: 9.5px; | |
| margin: 0 0 10px; | |
| font-size: 13px; | |
| line-height: 1.42857143; | |
| color: #333; | |
| word-break: break-all; | |
| word-wrap: break-word; | |
| background-color: #F5F5F5; | |
| border: 1px solid #CCC; | |
| border-radius: 4px; | |
| } | |
| .header { | |
| padding:20px 0; | |
| position:relative; | |
| margin-bottom:10px; | |
| } | |
| .header:after { | |
| content:""; | |
| display:block; | |
| height:1px; | |
| background:#eee; | |
| position:absolute; | |
| left:30%; right:30%; | |
| } | |
| .header h2 { | |
| font-size:3em; | |
| font-weight:300; | |
| margin-bottom:0.2em; | |
| } | |
| .header p { | |
| font-size:14px; | |
| } | |
| #a-footer { | |
| margin: 20px 0; | |
| } | |
| .new-react-version { | |
| padding: 20px 20px; | |
| border: 1px solid #eee; | |
| border-radius: 20px; | |
| box-shadow: 0 2px 12px 0 rgba(0,0,0,0.1); | |
| text-align: center; | |
| font-size: 14px; | |
| line-height: 1.7; | |
| } | |
| .new-react-version .react-svg-logo { | |
| text-align: center; | |
| max-width: 60px; | |
| margin: 20px auto; | |
| margin-top: 0; | |
| } | |
| .success-box { | |
| margin:50px 0; | |
| padding:10px 10px; | |
| border:1px solid #eee; | |
| background:#f9f9f9; | |
| } | |
| .success-box img { | |
| margin-right:10px; | |
| display:inline-block; | |
| vertical-align:top; | |
| } | |
| .success-box > div { | |
| vertical-align:top; | |
| display:inline-block; | |
| color:#888; | |
| } | |
| /* Rating Star Widgets Style */ | |
| .rating-stars ul { | |
| list-style-type:none; | |
| padding:0; | |
| -moz-user-select:none; | |
| -webkit-user-select:none; | |
| } | |
| .rating-stars ul > li.star { | |
| display:inline-block; | |
| } | |
| /* Idle State of the stars */ | |
| .rating-stars ul > li.star > i.fa { | |
| font-size:2.5em; /* Change the size of the stars */ | |
| color:#ccc; /* Color on idle state */ | |
| } | |
| /* Hover state of the stars */ | |
| .rating-stars ul > li.star.hover > i.fa { | |
| color:#FFCC36; | |
| } | |
| /* Selected state of the stars */ | |
| .rating-stars ul > li.star.selected > i.fa { | |
| color:#FF912C; | |
| } |
| <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" /> |