原生Javascript实现五角星评分
短信预约 -IT技能 免费直播动态提醒
利用原生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;
},
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341