js实现星级评分之方法一

Posted Yxh_blogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js实现星级评分之方法一相关的知识,希望对你有一定的参考价值。

利用一个星级评分的小案例,来逐步封装js星级评分插件。

从最基础的js知识,通过一个小的demo,逐步学习js的面向对象知识。

从浅到深,逐步递进。

图片素材

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>星级评分--第一种实现方式</title>
</head>
<style type="text/css">
    body,ul,li{
        margin: 0;
        padding: 0;
    }
    li{
        list-style-type: none;
    }
    .rating{
        width: 162px;
        height: 32px;
        margin: 100px auto;
    }
    .rating-item{
        float: left;
        width: 32px;
        height: 32px;
        background: url(\'./img/rating.png\') no-repeat;
        cursor: pointer;
    }
</style>
<body>
<ul class="rating" id="rating">
    <li class="rating-item" title="很不好"></li>
    <li class="rating-item" title="不好"></li>
    <li class="rating-item" title="一般"></li>
    <li class="rating-item" title="好"></li>
    <li class="rating-item" title="很好"></li>
</ul>
</body>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script>
<script type="text/javascript">
    var num = 2,
        $rating = $(\'#rating\'),
        $item = $rating.find(\'.rating-item\');

    //点亮星星
    var lightOn = function(num){
        $item.each(function(){
            if($(this).index() < num){
                $(this).css(\'background-position\',\'0 -32px\');
            }else{
                $(this).css(\'background-position\',\'0 0\');
            }
        });
    }

    //初始化,点亮num个星星
    lightOn(num);

    $item.on(\'mouseover\',function(){//鼠标移入时,触发相应操作
        lightOn($(this).index() + 1);
    }).on(\'click\',function(){//鼠标点击时,触发相应操作
        num = $(this).index() + 1;
    });

    //鼠标移出是,触发相应的操作
    $rating.on(\'mouseout\',function(){
        lightOn(num);
    });
</script>
</html>

 

以上是关于js实现星级评分之方法一的主要内容,如果未能解决你的问题,请参考以下文章

js css 星级评分

js实现星级评分效果(最短代码)

干货之运用CALayer创建星级评分组件(五角星)

jQuery Raty星级评分插件使用方法

星级评分js

星级评分实现