原生Javascript实现五角星评分

 更新时间:2022年09月01日 11:26:08   作者:Shay_Liu  
这篇文章主要为大家详细介绍了原生Javascript实现五角星评分,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

利用原生Javascript实现五角星评分,可以打半分.话不多说先上代码。

html部分

<div class="setStarRate">
        <div class="star">
            <span id="star">
                <li>
                    <a href="javascript:void(0)" οnclick="rateStar(1)"></a>
                    <a href="javascript:void(0)" οnclick="rateStar(2)"></a>
                </li>
                <li>  
                 <a href="javascript:void(0)" οnclick="rateStar(3)"></a>
                  <a href="javascript:void(0)" οnclick="rateStar(4)"></a> 
               </li>
               <li>
                    <a href="javascript:void(0)" οnclick="rateStar(5)"></a>
                    <a href="javascript:void(0)" οnclick="rateStar(6)"></a>
                </li>
                <li>
                    <a href="javascript:void(0)" οnclick="rateStar(7)"></a>
                    <a href="javascript:void(0)" οnclick="rateStar(8)"></a>
                </li>
                <li>
                    <a href="javascript:void(0)" οnclick="rateStar(9)"></a>
                    <a href="javascript:void(0)" οnclick= "rateStar(10)"></a>
                </li>
            </span>
        </div>
        <div class="grade">
            <span id="getStarRate">0.0</span>
    </div>
</div>

CSS部分:

<style>
    .grade span {
        margin-left: 15px;
        line-height: 30px;
    }
 
    span {
        width: 50%;
        height: 70%;
        padding: 0;
        margin: 0 25%;
    }
 
    span li {
        width: 20px;
        height: 20px;
        display: inline-block;
        background: url("") no-repeat;//这里输入灰色状态星星的图片链接
    }
 
    span li a {
        height: 20px;
        width: 10px;
        display: inline-block;
        display: block;
        float: left;
    }
</style>

js部分

function rateStar(index) {
   var star = document.getElementById('star');
   var items = star.getElementsByTagName("li");
       index = parseInt(index) - 1; //因为一个星星由2个a标签组成的,所以减掉1
         var tem = -1;
         //遍历所有的li标签
           for (var i = 0; i < items.length; i++) {
             if (index > i * 2) { //当index大于i*2的时候,就填充i个数量的满格星星
             items[i].style.background = "url() no-repeat";
             items[i].style.backgroundSize = "100% 100%";
             } else {
             if (tem == -1) {
                     tem = i;
                   }
                   items[i].style.background = "url() no-repeat"; //填充灰色状态的星星
                   items[i].style.backgroundSize = "100% 100%";
              }
         }
          //判断index是否等于偶数
           if (index == parseInt(tem) * 2) {
          //当前li元素的背景设置成半格星星状态
         items[tem].style.background = "url() no-repeat";
         items[tem].style.backgroundSize = "100% 100%";
        }
    document.getElementById('getStarRate').innerHTML = (parseInt(index) + 1) * 0.5;
},

运行结果: 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JavaScript改变函数作用域的方法示例

    JavaScript改变函数作用域的方法示例

    本文主要介绍了JavaScript改变函数作用域的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • JavaScript中的函数(二)

    JavaScript中的函数(二)

    函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。本文给大家介绍介绍javascript中的函数(二),对javascript函数相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • uniapp中如何修改图标和名称

    uniapp中如何修改图标和名称

    这篇文章主要给大家介绍了关于uniapp中如何修改图标和名称的相关资料,uni-app是一个使用Vue.js开发跨平台应用的前端框架,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • ES6代码转ES5详细教程(babel安装使用教程)

    ES6代码转ES5详细教程(babel安装使用教程)

    Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在老版本的浏览器执行,这意味着,你可以用 ES6 的方式编写程序,又不用担心现有环境是否支持,这篇文章主要介绍了ES6代码转ES5教程(babel安装使用教程),需要的朋友可以参考下
    2023-01-01
  • javascript 容错处理代码(屏蔽js错误)

    javascript 容错处理代码(屏蔽js错误)

    有时候大家来浏览网页的时候发现IE浏览器左下角总有个黄色错误标志,有时候更是直接弹出错误无法继续浏览页面,这样对于网站的正规性与权威性发展不利。
    2010-04-04
  • javascript实现根据身份证号读取相关信息

    javascript实现根据身份证号读取相关信息

    这篇文章主要介绍了javascript实现根据身份证号读取相关信息,需要的朋友可以参考下
    2014-12-12
  • 微信小程序停止其他视频播放当前视频的实例代码

    微信小程序停止其他视频播放当前视频的实例代码

    这篇文章主要介绍了微信小程序停止其他视频播放当前视频的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • electron-builder书写nsis脚本在安装electron程序时安装其他应用程序(完美解决方案)

    electron-builder书写nsis脚本在安装electron程序时安装其他应用程序(完美解决方案)

    这篇文章主要介绍了electron-builder书写nsis脚本在安装electron程序时安装其他应用程序的解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • JavaScript计算器网页版实现代码分享

    JavaScript计算器网页版实现代码分享

    这篇文章主要为大家详细介绍了JavaScript计算器网页版实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • JS暴虐查找法简洁版

    JS暴虐查找法简洁版

    有过相关经验的朋友都知道,Jscript的效率毕竟有限,在数组中查找数据时如果用常规的算法来做执行起来会很慢。
    2008-07-07

最新评论