星级评分--封装成jquery插件

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>星级评分--封装成jquery插件</title>
</head>
<style type="text/css">
	body,ul,li{
		margin: 0;
		padding: 0;
	}
	li{
		list-style-type: none;
	}
	.rating{
		width: 162px;
		height: 32px;
		margin: 100px auto;
	}
	.rating-item{
		float: left;
		width: 32px;
		height: 32px;
		background: url('./img/rating.png') no-repeat;
		cursor: pointer;
	}
</style>
<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>
</body>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script>
<script type="text/javascript">
	//封装成jquery插件
	var rating = (function(){
		//点亮星星
		var lightOn = function($item,num){
			$item.each(function(index){
				if(index < num){
					$(this).css('background-position','0 -32px');
				}else{
					$(this).css('background-position','0 0');
				}
			});
		};

		//初始化
		var init = function(el,num){
			var $rating = $('#rating'),
				$item = $rating.find('.rating-item');

			//初始化,点亮num个星星
			lightOn($item,num);		

			$rating.on('mouseover','.rating-item',function(){//鼠标移入时,触发相应操作
				lightOn($item,$(this).index() + 1);
			}).on('click','.rating-item',function(){//鼠标点击时,触发相应操作
				num = $(this).index() + 1;
			}).on('mouseout',function(){//鼠标移出是,触发相应的操作
				lightOn($item,num);
			});
		};

		//jquery插件
		$.fn.extend({
			rating : function(num){
				return this.each(function(){
					init(this,num);
				});
			}
		});

		return {
			init : init
		};
	})();
	$(".rating").rating(3);
</script>
</html>

素材

posted @ 2017-07-23 22:42  Yxh_blogs  阅读(210)  评论(0编辑  收藏  举报