Home > Web Front-end > CSS Tutorial > How Can I Transform Numbers into Star Ratings Using jQuery and CSS?

How Can I Transform Numbers into Star Ratings Using jQuery and CSS?

Linda Hamilton
Release: 2024-12-14 20:14:11
Original
866 people have browsed it

How Can I Transform Numbers into Star Ratings Using jQuery and CSS?

Turn Any Number into a Star Rating Display with jQuery and CSS

Creating a star rating display from a numerical value can enhance the visualization of review scores and product ratings on websites and applications. This task can be simplified using a combination of jQuery and CSS.

jQuery and CSS Implementation

The solution involves utilizing a single CSS image and automatically generated span elements:

CSS

span.stars, span.stars span {
    display: block;
    background: url(stars.png) 0 -16px repeat-x;
    width: 80px;
    height: 16px;
}
span.stars span {
    background-position: 0 0;
}
Copy after login

Image

Note: Copy the stars.png image to your own server and use it locally.

jQuery

$.fn.stars = function() {
    return $(this).each(function() {
        // Get the value and ensure it is within 0-5 range
        var val = parseFloat($(this).html());
        val = Math.max(0, (Math.min(5, val)));
        // Calculate star width and create a span holder
        var size = val * 16;
        var $span = $('<span />').width(size);
        // Replace the numerical value with stars
        $(this).html($span);
    });
}
Copy after login

HTML

<span>
Copy after login

Usage

$(function() {
    $('span.stars').stars();
});
Copy after login

Customization

To restrict stars to half or quarter star sizes, modify the JavaScript code as follows:

  • Half stars: val = Math.round(val * 2) / 2;
  • Quarter stars: val = Math.round(val * 4) / 4;

Explanation

The script creates nested span elements with background images of a star sprite. The outer span contains gray stars, while the inner span contains yellow stars. By adjusting the width of the inner span, the yellow stars reveal the appropriate number of gray stars.

Accessibility Considerations

Accessibility can be improved by hiding the numerical value inside the inner span using text-indent: -9999px;, ensuring it's available for assistive technologies.

The above is the detailed content of How Can I Transform Numbers into Star Ratings Using jQuery and CSS?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template