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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM