网页中评分效果原理。

哈哈,只是简单的原理(代码可能不是这样写的),明白原理就好~~~~~

    <title></title>
    <style type="text/css">
        td {
            font-size: 5px;
            cursor: default;
        }
    </style>
</head>
<body>

    <table id="Star">
        <tr>
            <td>☆</td>
        </tr>

        <tr>
            <td>☆</td>
        </tr>

        <tr>
            <td>☆</td>
        </tr>

        <tr>
            <td>☆</td>
        </tr>

        <tr>
            <td>☆</td>
        </tr>
    </table>
</body>
</html>
<script type="text/javascript">
    ///未点击之前每个元素都有mouseover,mouseout事件,
    ///点击之后,每个元素都取消mouseover,mouseout事件,
    ///每个元素点击(包含此元素)之前变黑,之后(不包含)变白。
    var len = 0;
    //if (arguments[0].__proto__.constructor.name == ‘MouseEvent‘) {
    //    idEnd = arguments[0].srcElement.id;
    //} if (arguments[0].__proto__.constructor.name == ‘HTMLTableCellElement‘) {
    //    idEnd = arguments[0].id;
    //}
    var BGChangNull = function (low, high) {
        for (var i = low; i <= high; i++) {
            document.getElementById(i).innerHTML = ‘☆‘;
        }
    };
    var BGChangeValue = function (low, high) {
        for (var i = low; i <= high; i++) {
            document.getElementById(i).innerHTML = ‘★‘;
        }
    };
    var BGChangeAble = function (bool) {
        for (var i = 0; i < len; i++) {
            document.getElementById(i).onmouseover.disabled = bool;
            document.getElementById(i).onmouseout.disabled = bool;
        }
    };
    var BGChangeOver = function () {
        var idEnd = this.id;
        if (!this.onmouseover.disabled) {
            BGChangeValue(0, idEnd);
        }
    };
    var TDChangeOut = function () {
        var idEnd = this.id;
        if (!this.onmouseout.disabled) {
            BGChangNull(0, idEnd);
            ////var idEnd = this.id;
            //BGChangNull(0, this.id);
            ////this.onmouseover.disabled = true;
        }
        //else {
        //    this.onmouseout.disabled = true;
        //}
    };
    var TDOnclick = function () {//点击后改变over事件
        var idEnd = this.id;
        BGChangeValue(0, idEnd);
        BGChangNull(++idEnd, len - 1);
        BGChangeAble(true);
        document.getElementsByTagName(‘span‘)[0].innerText = idEnd;
    };
    window.onload = function () {
        var tds = document.getElementById(‘Star‘).getElementsByTagName(‘td‘);
        len = parseInt(tds.length);
        for (var i = 0; i < len; i++) {
            tds[i].id = i;
            tds[i].onmouseover = BGChangeOver;
            tds[i].onmouseout = TDChangeOut;
            tds[i].onclick = TDOnclick;
        }
        var sp = document.createElement(‘span‘);
        document.body.appendChild(sp);
    };
</script>

百度浏览器效果图:

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。