【javascript】原生 js 星級評分


今天上午抽空隨手寫了個星級評分的效果,給大家分享下。由於水平有限,如有問題請指出。

首先要准備一張星星的圖片,灰色是默認狀態,黃色是選擇狀態。如圖:

最后附上代碼:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>javascript星級評分</title>
    <style type="text/css">
    *{margin:0;padding:0;}
    .wrapper{height:20px;padding:5px;width:130px;margin:100px auto 10px;}
    a{float:left;width:26px;height:20px;background:url(star.png) 0 -20px no-repeat;}
    p{font:24px SimSun;width:130px;margin-left:auto;margin-right:auto;}
    </style>
</head>
<body>
    <div class="wrapper">
        <a href="javascript:;"></a>
        <a href="javascript:;"></a>
        <a href="javascript:;"></a>
        <a href="javascript:;"></a>
        <a href="javascript:;"></a>
    </div>
    <p></p>
</body>
</html>
<script type="text/javascript">
window.onload = function(){
    var star = document.getElementsByTagName('a');
    var oDiv = document.getElementsByTagName('div')[0];
    var temp = 0;
    
    for(var i = 0, len = star.length; i < len; i++){
        star[i].index = i;
        
        star[i].onmouseover = function(){
            clear();
            for(var j = 0; j < this.index + 1; j++){
                star[j].style.backgroundPosition = '0 0';
            }
        }
        
        star[i].onmouseout = function(){
            for(var j = 0; j < this.index + 1; j++){
                star[j].style.backgroundPosition = '0 -20px';
            }
            current(temp);
        }
        
        star[i].onclick = function(){
            temp = this.index + 1;
            document.getElementsByTagName('p')[0].innerHTML = temp + ' 顆星';
            current(temp);
        }
    }
    //清除所有
    function clear(){
        for(var i = 0, len = star.length; i < len; i++){
            star[i].style.backgroundPosition = '0 -20px';
        }
    }
    //顯示當前第幾顆星
    function current(temp){
        for(var i = 0; i < temp; i++){
            star[i].style.backgroundPosition = '0 0';
        }
    }
};
</script>

附上下載地址。


免責聲明!

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



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