核心提示:前端点星星功能代码封装教程!DOCTYPE htmlhtml lang=enheadmeta charset=UTF-8titleDocument/titlestylebody,ul,li{paddi...
前端点星星功能代码封装教程
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body,ul,li{
padding:0;
margin:0;
}
li {
list-style-type: none;
}
.rating {
width: 130px;
height: 26px;
margin: 100px auto;
}
.rating-item {
float: left;
width: 26px;
height: 26px;
background: url(star1.png) no-repeat center;
}
</style>
</head>
<body>
<ul class="rating" id="rating">
<li class="rating-item" title="很不好"></li>
<li class="rating-item" title="不好"></li>
<li class="rating-item" title="一般"></li>
<li class="rating-item" title="好"></li>
<li class="rating-item" title="很好"></li>
</ul>
<ul class="rating" id="rating2">
<li class="rating-item" title="很不好"></li>
<li class="rating-item" title="不好"></li>
<li class="rating-item" title="一般"></li>
<li class="rating-item" title="好"></li>
<li class="rating-item" title="很好"></li>
</ul>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
var rating=(function(){
// 点亮
var init=function(el,num){
var $rating =$(el),
$item=$rating.find('.rating-item');
var lightOn=function($item,num){
$item.each(function(index){
if(index<num){
$(this).css('background-image','url(star2.png)');
}else{
$(this).css('background-image','url(star1.png)');
}
});
};
// 初始化
lightOn($item,num);
// 事件绑定
$rating.on('mouseover','.rating-item',function() {
lightOn($item,$(this).index()+1); //加一是因为上面是小于
}).on('click','.rating-item',function(){
num=$(this).index()+1; //直接改变num值
}).on('mouseout',function(){ //离开时显示
lightOn($item,num);
});
};
// jq封装
$.fn.extend({
rating:function(num){
return this.each(function(){
init(this,num);
});
}
})
return {
init:init
};
})();
$('#rating').rating(1);
$('#rating2').rating(4);
</script>
</body>
</html>


