r 3.98 KB
/**
 * jinrun
 * 2014-05-22
 * 工具类
 */

var Tools = (function(){
	
	/**
	 * 设置选中状态class
	 * _view : 最外面容器类名
	 * _aView : 需要绑定的标签
	 * _show : 需要显示的类名
	 */
	this.setSelected = function(_view, _aView, _show, _obj){
		function addClass (){
			var _showView = $('.'+_view+' .'+_show);
			var _fView = '.'+_view+' '+_aView;
			var type = 'click';
			if(_obj && _obj.type){
				type = _obj.type;
			};
			$(_fView).live(type, function(){
				if(_showView){
					_showView.removeClass(_show);
				};
				if(_obj && _obj.type == 'change'){
					$(this).parent().parent().parent().addClass(_show);
					_showView = $(this).parent().parent().parent();
				}else{
					$(this).addClass(_show);
					_showView = $(this);
				}
				if(_obj && _obj.fun){
					_obj.fun($(this));
				};
				return false;
			});
			
			this.setIndex = function(index){
				if($(_fView).eq(index)){
					if(_showView){
						_showView.removeClass(_show);
					};
					$(_fView).eq(index).addClass(_show);
					_showView = $(_fView).eq(index);
				}
			};
			
			return this;
		};
		
		return new addClass();
	};
	
	/**
	 * 数量添加器
	 * 
	 */
	this.numChange = function(_view1, _view2, _view3, _fun){
		function DiliNum (){
			 if(! _fun){
			 	_fun = function(){};
			 };
			
			//数量减少
			$('.'+_view1).click(function(){
				var num = parseInt($(this).parent().next().find('input').val());
				if(num > 1){
					num -= 1;
					// $(this).parent().next().find('input').val(num);
					_fun(num);
				};
			});
			//显示数值
			var inNum = 1;
			$('.'+_view2).focus(function(){
				inNum = parseInt($(this).val());
			}).blur(function(){
				// if(parseInt($(this).val())){
					// if(parseInt($(this).val()) >= 10000){
						// $(this).val(inNum);
					// }else{
						// $(this).val(parseInt($(this).val()));
					// };
				// }else{
					// $(this).val(inNum);
				// };
				_fun(parseInt($(this).val()));
			});
			//数量添加
			$('.'+_view3).click(function(){
				var num = parseInt($(this).parent().prev().find('input').val());
				if(num < 9999){
					num += 1;
					// $(this).parent().prev().find('input').val(num);
					_fun(num);
				};
			});
		};
		
		return new DiliNum();
	};
	
	
	
	
	
	
	return this;
})();


(function($){
	$.fn.simpleZoom = function(options){
		var defs = {
			zoomBox : "#zoomBox",			//需要放大的区域
			markSize : [200, 100],			//放大镜宽高
			zoomSize : [390, 390],			//需要放大的区域宽高
			zoomImg : [780, 780]			//需要放大的区域的图片的宽高
		};
		var opt = $.fn.extend({}, defs, options);
		return this.each(function(){
			var markBox = $(this);
			var zoomBox = $(opt.zoomBox);
			var zoom_img = $(opt.zoomBox).find("img"); 
			var markBoxSize = [markBox.width(), markBox.height(), markBox.offset().left, markBox.offset().top];
			var markSize = opt.markSize;
			var zoomSize = opt.zoomSize;
			var zoomImg = opt.zoomImg;
			var mark_ele = "<i id='mark'></i>";
			var mark_css = {position:"absolute", top:0, left:0, width:markSize[0]+"px", height:markSize[1]+"px", backgroundColor:"#fff", opacity:.5, filter:"alpha(opacity=10)",  display:"none", cursor:"crosshair"};
			
			var show_w = markBoxSize[0]-markSize[0];
			var show_h = markBoxSize[1]-markSize[1];

			zoomBox.css({width:zoomSize[0]+"px", height:zoomSize[1]+"px"});
			markBox.append(mark_ele);
			$("#mark").css(mark_css);

			markBox.mouseover(function(){
				$("#mark").show();
				zoomBox.show();
			}).mouseout(function(){
				$("#mark").hide();
				zoomBox.hide();
			}).mousemove(function(e){
				var l = e.pageX-markBoxSize[2]-(markSize[0]/2);
				var t = e.pageY-markBoxSize[3]-(markSize[1]/2);
				if(l < 0){
					l = 0;
				}else if(l > show_w){
					l = show_w;
				}
				if(t < 0){
					t = 0;
				}else if(t > show_h){
					t = show_h;
				}

				$("#mark").css({left:l+"px", top:t+"px"});
				
				var z_x = -(l/show_w)*(zoomImg[0]-zoomSize[0]);
				var z_y = -(t/show_h)*(zoomImg[1]-zoomSize[1]);
				zoom_img.css({left:z_x+"px", top:z_y+"px"});
			});
		});
	}
})(jQuery);