zoukankan      html  css  js  c++  java
  • [读码时间] 星级评分

    说明:代码取自网络,注释为原文自带!

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>星级评分</title>
        <style>
            body,div,ul,li,p{
                margin:0;
                padding:0;
            }
            body{
                color:#666;
                font:12px/1.5 Arial;
            }
            ul{
                list-style-type:none;
            }
            #star{
                position:relative;
                width:600px;
                margin:10px auto;/*左右置中*/
            }
            #star ul, #star span{
                float:left;
                display:inline;
                height:19px;
                line-height:19px;
            }
            #star ul{
                margin:0 10px;
            }
            #star li{
                float:left;
                width:24px;
                cursor:pointer;
                text-indent:-9999px;
                background:url(img/star.png) no-repeat;
            }
            #star strong{
                color:#f60;
                padding-left:10px;
            }
            #star li.on{
                background-position:0 -28px;
            }
    
            #star p{
                position:absolute;
                top:20px;
                width:159px;
                height:60px;
                display:none;
                background:url(img/icon.gif) no-repeat;
                padding:7px 10px 0;
            }
            #star p em{
                color:#f60;
                display:block;
                font-style:normal;
            }
        </style>
        <script>
            window.onload = function () {
                var oStar = document.getElementById("star");
                var aLi = oStar.getElementsByTagName("li");
                var oUl = oStar.getElementsByTagName("ul")[0];
                var oSpan = oStar.getElementsByTagName("span")[1];
                var oP = oStar.getElementsByTagName("p")[0];
                var i = iScore = iStar = 0;
                var aMsg = [
                            "很不满意|差得太离谱,与卖家描述的严重不符,非常不满",
                            "不满意|部分有破损,与卖家描述的不符,不满意",
                            "一般|质量一般,没有卖家描述的那么好",
                            "满意|质量不错,与卖家描述的基本一致,还是挺满意的",
                            "非常满意|质量非常好,与卖家描述的完全一致,非常满意"
                ]
    
                for (i = 1; i <= aLi.length; i++) {
                    aLi[i - 1].index = i;
                    //鼠标移过显示分数
                    aLi[i - 1].onmouseover = function () {
                        fnPoint(this.index);
                        //浮动层显示
                        oP.style.display = "block";
                        //计算浮动层位置
                        oP.style.left = oUl.offsetLeft + this.index * this.offsetWidth - 104 + "px";
                        //匹配浮动层文字内容
                        oP.innerHTML = "<em><b>" + this.index + "</b> 分 " + aMsg[this.index - 1].match(/(.+)|/)[1] + "</em>" + aMsg[this.index - 1].match(/|(.+)/)[1]
                    };
                    //鼠标离开后恢复上次评分
                    aLi[i - 1].onmouseout = function () {
                        fnPoint();
                        //关闭浮动层
                        oP.style.display = "none"
                    };
                    //点击后进行评分处理
                    aLi[i - 1].onclick = function () {
                        iStar = this.index;
                        oP.style.display = "none";
                        oSpan.innerHTML = "<strong>" + (this.index) + " 分</strong> (" + aMsg[this.index - 1].match(/|(.+)/)[1] + ")"
                    }
                }
                //评分处理
                function fnPoint(iArg) {
                    //分数赋值
                    iScore = iArg || iStar;
                    for (i = 0; i < aLi.length; i++) aLi[i].className = i < iScore ? "on" : "";
                }
            };
        </script>
    </head>
    <body>
        <div id="star">
            <span>点击星星就能打分</span>
            <ul>
                <li><a href="javascript:;">1</a></li>
                <li><a href="javascript:;">2</a></li>
                <li><a href="javascritp:;">3</a></li>
                <li><a href="javascript:;">4</a></li>
                <li><a href="javascript:;">5</a></li>
            </ul>
            <span></span>
            <p></p>
        </div>
    </body>
    </html>
    View Code
  • 相关阅读:
    离线安装 Cloudera Manager 5 和 CDH5.10
    Sersync+Rsync实现触发式文件同步
    Azkaban3.x集群部署(multiple executor mode)
    内置函数
    递归
    嵌套函数,匿名函数,高阶函数
    局部变量,全局变量,作用域
    函数的介绍
    文件处理
    第二模块-三元运算
  • 原文地址:https://www.cnblogs.com/sx00xs/p/6487796.html
Copyright © 2011-2022 走看看