你信不信,只要学几天javascript就可以使用纯原生实现五星评分效果 【附完整代码】

简介: javascript纯原生实现五星评分效果

🚀 个人主页 极客小俊
✍🏻 作者简介:web开发者、设计师、技术分享博主
🐋 希望大家多多支持一下, 我们一起进步!😄
🏅 如果文章对你有帮助的话,欢迎评论 💬点赞👍🏻 收藏 📂加关注

2.png

效果展示

3.gif

图片素材

4.gif

HTML代码

<div id="star">
    <h5>点击星星就能打分</h5>
    <ul>
        <li class="active"><a href="javascript:;"></a></li>
        <li><a href="javascript:;"></a></li>
        <li><a href="javascript:;"></a></li>
        <li><a href="javascript:;"></a></li>
        <li><a href="javascript:;"></a></li>
    </ul>
    <p>显示文字信息:<span></span></p>
</div>

CSS代码

* {
   
   
    margin: 0;
    padding: 0;
}

body {
   
   
    color: #666;
    font-size: 12px;
    font-family: '微软雅黑';
}

ul {
   
   
    list-style-type: none;
}

#star {
   
   
    position: relative;
    width: 400px;
    margin: 100px auto;
    border: 1px solid red;
    border-radius: 10px;
    padding: 30px;
}

#star h5 {
   
   
    width: 100px;
    margin: 0 auto;
    line-height: 19px;
    text-align: center;
}

#star ul {
   
   
    margin: 20px 20px;
    border: 1px saddlebrown solid;
    overflow: hidden;
    padding: 10px;
}

#star ul li {
   
   
    float: left;
    width: 27px;
    height: 27px;
    cursor: pointer;
    background: url("img/star.gif") no-repeat;
}

#star li.active {
   
   
    background-position: 0 -29px;
}

#star>p{
   
   
    border: 1px solid red;
    width: 200px;
    margin: 0 auto;
    padding: 10px;
}
#star>p>span{
   
   
    color: red;
}

javascript 代码

window.onload = function () {
   
   


    var oStar = document.getElementById("star");

    var oLi = oStar.getElementsByTagName("li");

    var oUl = oStar.getElementsByTagName("ul")[0];

    var oP = oStar.getElementsByTagName("p")[0];
    var oSpan = oP.getElementsByTagName("span")[0];

    var iScore = iStar = 0;

    var message = ['很不满意', '不满意', '一般', '满意', '非常满意'];
    var index=0;

    var onoff=false;
    for (var i = 0; i < oLi.length; i++) {
   
   
        oLi[i].index = i;
        oLi[i].onmousemove = function () {
   
   
            oSpan.innerHTML=message[this.index];
            _showStar(this.index);
        }
        oLi[i].onmouseout = function () {
   
   
            if(onoff==false){
   
   
                oSpan.innerHTML="默认";
            }
            _showStar();
        }

        oLi[i].onclick = function () {
   
   
            iStar = this.index;
            index = this.index;  
            onoff=true;
            if(onoff==true){
   
   
                oSpan.innerHTML=message[this.index];
            }
        }

    }

    oUl.onmouseout=function (){
   
   
        oSpan.innerHTML=message[index];
    }

    function _showStar(_index) {
   
   
        iScore = _index+1 || iStar+1
        for (var i = 0; i < oLi.length; i++) {
   
   
            if(i<iScore){
   
   
                oLi[i].className='active';
            }else{
   
   
                oLi[i].className='';
            }
        }
    }

}

结束

怎么样,其实要实现这个效果的思路很简单,你有基础的情况下,学了几天JS就能够读懂其中的含义!

相关文章
|
8天前
|
JavaScript 前端开发 Python
用python执行js代码:PyExecJS库
文章讲述了如何使用PyExecJS库在Python环境中执行JavaScript代码,并提供了安装指南和示例代码。
45 1
用python执行js代码:PyExecJS库
|
4天前
|
编解码 前端开发 JavaScript
javascript检测网页缩放演示代码
javascript检测网页缩放演示代码
|
6天前
|
Web App开发 JavaScript 前端开发
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
|
7天前
|
存储 JavaScript 前端开发
webSocket+Node+Js实现在线聊天(包含所有代码)
文章介绍了如何使用WebSocket、Node.js和JavaScript实现在线聊天功能,包括完整的前端和后端代码示例。
33 0
|
3天前
|
存储 JavaScript 前端开发
改进JavaScript代码,给水果有序赋色
改进JavaScript代码,给水果有序赋色
|
5天前
|
存储 JSON JavaScript
JavaScript帮我编写快递自动分拣的代码,区分省份市区县城乡镇
JavaScript帮我编写快递自动分拣的代码,区分省份市区县城乡镇在JavaScript中编写一个用于快递自动分拣的代码,区分省份、市区、县、城乡镇,通常意味着你需要一个数据结构来存储这些地理区域的信息,并编写逻辑来根据快递地址中的信息将其分配到正确的分类中。 这里,我将提供一个简化的示例,说明如何使用JavaScript对象和函数来实现这一功能。请注意,这个示例是高度简化的,并且假设你已经有了某种方式(如正则表达式或API调用)来从快递地址中提取省份、市区、县等信息。 ----------------------------------- ©著作权归作者所有:来自51CTO博客作者goS
|
6天前
|
JavaScript 前端开发 Python
python执行js代码
本文档详细介绍如何安装Node.js环境及PyExecJS库,并提供示例代码展示其功能。首先,通过指定链接安装Node.js,安装完毕后可在命令行中输入`node --version`来验证安装是否成功。接着,使用`pip install PyExecJS`安装PyExecJS库,该库允许Python程序执行JavaScript代码。文档还提供了多个示例代码,展示了如何在Python环境中执行和编译JavaScript代码,并可以选择特定的JavaScript运行时环境,如Node.js或JScript。最后,通过具体案例展示了PyExecJS的功能与使用方法。
14 3
|
9天前
|
移动开发 前端开发 JavaScript
原生JavaScript+canvas实现五子棋游戏_值得一看
本文介绍了如何使用原生JavaScript和HTML5的Canvas API实现五子棋游戏,包括棋盘的绘制、棋子的生成和落子、以及判断胜负的逻辑,提供了详细的代码和注释。
13 0
原生JavaScript+canvas实现五子棋游戏_值得一看
|
15天前
|
JavaScript
网站内容禁止复制的js代码
网站内容禁止复制的js代码
|
21天前
|
缓存 JavaScript 前端开发
js和html代码一定要分离吗
JavaScript(JS)和HTML代码的分离虽非绝对必要,但通常被推荐
下一篇
无影云桌面