• js css div 点亮半颗星星(二)


    上回说到js css点亮星星 换种方式来点亮

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>rating</title>
    </head>
    <style >
    	*{margin:0;padding: 0}
    	div{500px; padding:100px;padding:0 auto;}
    
    </style>
    
    <body>				
    	<div class="rating" id="rating">
    		<img class="rating-item" src="http://images.cnblogs.com/cnblogs_com/tonnytong/769928/o_off.png" alt="" title="很差">
    		<img class="rating-item" src="http://images.cnblogs.com/cnblogs_com/tonnytong/769928/o_off.png" alt="" title="差">
    		<img class="rating-item" src="http://images.cnblogs.com/cnblogs_com/tonnytong/769928/o_off.png" alt="" title="一般">
    		<img class="rating-item" src="http://images.cnblogs.com/cnblogs_com/tonnytong/769928/o_off.png" alt="" title="好">
    		<img class="rating-item" src="http://images.cnblogs.com/cnblogs_com/tonnytong/769928/o_off.png" alt="" title="极好">
    	</div>
    </body>
    </html>
    <script type="text/javascript" src="https://files.cnblogs.com/files/tonnytong/___jquery-1.12.0.min.js"></script>
    <script type="text/javascript">
    	(function($){
    		var ratingFunc = function(elWrap,options){
    			this._opts = {
    				num:1
    			};
    			this._opts = $.extend(this._opts,options);
    			this._el = $(elWrap);
    			this._ratingItems = this._el.find(".rating-item");
    
    			this._lightOn(this._opts.num);
    			this._bindEvent();
    		};
    
    		$.extend(ratingFunc.prototype,{
    			_lightOn: function(num){
                    var that = this;
    				that._ratingItems.each(function(index){
    					var $this = $(this)
    						, intNum = parseInt(num);
    					$this.attr("src","http://images.cnblogs.com/cnblogs_com/tonnytong/769928/o_off.png");
    					if((index +1) <=num)
    					{
    						$this.attr("src","http://images.cnblogs.com/cnblogs_com/tonnytong/769928/o_on.png");
    						if(intNum != num){
    							if(index +1 == intNum){
    								$this.attr("src","http://images.cnblogs.com/cnblogs_com/tonnytong/769928/o_half-on.png");
    							}
    						}
    					}
    				})
    			},
    			_calculateNum: function(obj,eventObj)
    			{
                    var that = this;
    
    				var imgWith = obj.width()
    		 			, offset = obj.offset();
    				if((eventObj.pageX-offset.left) < (0.5*imgWith)){
    					that._opts.num = obj.index()+1+0.5;
    				}else{
    					that._opts.num = obj.index()+1;
    				}				
    			},
    			_bindEvent: function(){
                    var that = this;
    				that._ratingItems.on("click",function(e){
    					that._calculateNum($(this),e);		
    					that._lightOn(that._opts.num);
    				}).on("mousemove",function(e){
    					that._calculateNum($(this),e);							
    					that._lightOn(that._opts.num);
    				})
    			}
    		})
    
    	    $.ratingFunc = function(el,options){
    	        return new ratingFunc(el,options);
    	    };
    	})(jQuery);
    
    	$.ratingFunc("#rating",{num:3.5});
    
    </script>
    

      

  • 相关阅读:
    DHCP和NAT
    Mongos WoW
    是否能在构造函数,析构函数中抛出异常?
    Lua Getter/Setter
    xLua
    基于模板特化的Lua自动绑定系统
    为什么有人说富坚义博有着殿堂级的画功?他的画功体现在哪儿呢? 关注者 10205 被浏览 2701670
    在Windows和MacOS下编译Lua
    解决warning MSB8012:问题
    setjmp和longjmp
  • 原文地址:https://www.cnblogs.com/tonnytong/p/7878814.html
Copyright © 2020-2023  润新知