当前位置: 代码迷 >> Web前端 >> 从新封装按钮样式
  详细解决方案

从新封装按钮样式

热度:276   发布时间:2012-10-06 17:34:01.0
重新封装按钮样式

最近做的一个项目需要用到很多按钮样式,本想用样式表直接完成的,可是调用的时候有些麻烦,所以借用jquery重新封装一下按钮样式,此内容是为了让自己以后能看懂。个人记忆不好,自己做过的东西,一段时间不用就会忘了。

?

1.完成基本样式

?

?html部分

<span class="z-btn-box"><span class="z-btn-left"><a href="#" class="icon-cls">添加</a></span></span>

?

.z-btn-box,z-btn-box-hover{	color:#444;	background:url(../images/button/btnout_bg_right.gif) no-repeat top right;font-size:12px;text-decoration:none;display:inline-block;
display:-moz-inline-stack;*display:inline;zoom:1;height:24px;line-height:24px;padding-right:10px; cursor:pointer;}
.z-btn-box input{background:transparent;border:none; margin-bottom:8px;background-repeat:no-repeat; background-position:left top;cursor:pointer;} 
.z-btn-box a{background:transparent;border:none; padding:2px;*padding-top:0px; padding-left:20px; background-repeat:no-repeat; background-position:left center; text-decoration:none; color:#333;}
.z-btn-left,.z-btn-left-hover{display:block;background:url(../images/button/btnout_bg_left.gif) no-repeat top left;	padding:5px 0px 5px 10px;line-height:14px;}
.z-btn-box-hover{background-image:url(../images/button/btnover_bg_right.gif);}
.z-btn-left-hover{background-image:url(../images/button/btnover_bg_left.gif);}

?

?完成此基本后,样式基本完成。

但使用的时候很不方便。(附件:按钮样式)

每次都要加上sapn

2.使用jquery把a,input标记包裹起来,这样就不用多写代码了。

(function ($) {

    /** 
    * @fileOverview 简单按钮样式封装 
    * @author <a href="http://gleams.iteye.com/blog/985989">星月</a> 
    * @version 0.1 
    */

    $.fn.linkButton = init;

    function init() {
		
      inputButton();
        aButton();
	  buttonStyle();
        
    }
	
	
   function wrapSapn(targe){
	    var wrapCode = "<span class='z-btn-box'><span class='z-btn-left'></span></span>";
	    var i_icon = $(targe).attr('icon');
	     $(targe).wrap(wrapCode).addClass(i_icon);
		
		
	 }
        /** 
        * @description inputButton() 
        */
	function inputButton() {
		
		
		//button
		  $('input[type="button"]').each(function(){
			if($(this).attr('value')!=""){
			    wrapSapn(this);
			    $(this).css('padding-left', '20px');
			  }
			});
			
			
		//submit	
	    	$('input[type="submit"]').each(function(){
			  if($(this).attr('value')!=""){
				 wrapSapn(this);
				 $(this).css('padding-left', '20px');
				}		 
		    });
		
		//submit	
	    	$('input[type="reset"]').each(function(){
			  if($(this).attr('value')!=""){
				 wrapSapn(this);
				 $(this).css('padding-left', '20px');
				}		 
		    });
		

	}

	function aButton() {
	//a	
	    $('a').each(function(){
		  if($(this).text()!=""){
			 wrapSapn(this);
			 $(this).css('padding-left', '20px');
			}		 
		 });
		
	}
	
	function buttonStyle(){
		  $("span.z-btn-box").hover(function () { $(this).toggleClass("z-btn-box-hover"); $(this).children().toggleClass("z-btn-left-hover"); });//鼠标经过样式
		}
	
	//启动
    $(function () {
        $(".z-btn-box").linkButton();
		
    })
})(jQuery);

?重新包裹后,调用就方便了。

<input type="button" icon='icon-add' value="热饭" />

?? 这样可以使用在样式表里定义的55个按钮样式了。

?

  相关解决方案