,当不可用状态的时候 按钮需要变灰,以提示用户字体不可再放大或者缩小。根据这些功能,写了一个小程序来控制字体变化和可用状态的切换。
主要原理是 用一个数组来存储所有的控制字号和 可用状态的class,然后随着+ 或者 - 号的点击,来读取相应的数组元素,计算类名并施加到相应受控容器:
fstp:["fmin","fstp1","fstp2","fstp3","fstp4","fstp5","fstp6","fstp7","fstp8","fmax"], //字号数组
fctl:$("#artbox"), //受控容器
其中fmin 和 fmax 除了控制字号,还控制了+ - 按钮的可用和不可用状态:
.fmax .func a.add
{
background-position
:
0 0
;
}
/*
不可用状态的样式
*/
.fmin .text p { font-size : 1em ; }
.fstp1 .text p { font-size : 1.1em ; }
.fstp2 .text p { font-size : 1.2em ; }
.fstp3 .text p { font-size : 1.3em ; }
.fstp4 .text p { font-size : 1.4em ; }
.fstp5 .text p { font-size : 1.5em ; }
.fstp6 .text p { font-size : 1.6em ; }
.fstp7 .text p { font-size : 1.7em ; }
.fstp8 .text p { font-size : 1.8em ; }
.fmax .text p { font-size : 2em ; }
.fmin .func a.dec { background-position : 0 -34px ; } /* 不可用状态的样式 */
.fmin .text p { font-size : 1em ; }
.fstp1 .text p { font-size : 1.1em ; }
.fstp2 .text p { font-size : 1.2em ; }
.fstp3 .text p { font-size : 1.3em ; }
.fstp4 .text p { font-size : 1.4em ; }
.fstp5 .text p { font-size : 1.5em ; }
.fstp6 .text p { font-size : 1.6em ; }
.fstp7 .text p { font-size : 1.7em ; }
.fstp8 .text p { font-size : 1.8em ; }
.fmax .text p { font-size : 2em ; }
.fmin .func a.dec { background-position : 0 -34px ; } /* 不可用状态的样式 */
$(
function
(){
var fsize; // Steping Font Size
if ( ! fsize) fsize = {};
fsize = {
fidx: 2 , // 起始字号序列
fstp:[ " fmin " , " fstp1 " , " fstp2 " , " fstp3 " , " fstp4 " , " fstp5 " , " fstp6 " , " fstp7 " , " fstp8 " , " fmax " ], // 字号数组
fctl:$( " #artbox " ), // 受控容器
fcls: " artbox " , // 受控容器原有class
fup : function (){ // 字号增加
fsize.fidx ++ ;
if (fsize.fidx >= fsize.fstp.length - 1 ) fsize.fidx = fsize.fstp.length - 1 ;
var cls = fsize.fcls + fsize.fstp[fsize.fidx];
fsize.fctl.attr( " class " ,cls);
},
fdown: function (){ // 字号减小
fsize.fidx -- ;
if (fsize.fidx <= 0 ) fsize.fidx = 0 ;
var cls = fsize.fcls + fsize.fstp[fsize.fidx];
fsize.fctl.attr( " class " ,cls);
}
}
// fsize.fup();
$( " .add " ).click( function (){fsize.fup();})
$( " .dec " ).click( function (){fsize.fdown();})
$( " .add,.dec " ).focus( function (e){$(e.target).blur()}) // 取消a标签的聚焦虚线框
})
var fsize; // Steping Font Size
if ( ! fsize) fsize = {};
fsize = {
fidx: 2 , // 起始字号序列
fstp:[ " fmin " , " fstp1 " , " fstp2 " , " fstp3 " , " fstp4 " , " fstp5 " , " fstp6 " , " fstp7 " , " fstp8 " , " fmax " ], // 字号数组
fctl:$( " #artbox " ), // 受控容器
fcls: " artbox " , // 受控容器原有class
fup : function (){ // 字号增加
fsize.fidx ++ ;
if (fsize.fidx >= fsize.fstp.length - 1 ) fsize.fidx = fsize.fstp.length - 1 ;
var cls = fsize.fcls + fsize.fstp[fsize.fidx];
fsize.fctl.attr( " class " ,cls);
},
fdown: function (){ // 字号减小
fsize.fidx -- ;
if (fsize.fidx <= 0 ) fsize.fidx = 0 ;
var cls = fsize.fcls + fsize.fstp[fsize.fidx];
fsize.fctl.attr( " class " ,cls);
}
}
// fsize.fup();
$( " .add " ).click( function (){fsize.fup();})
$( " .dec " ).click( function (){fsize.fdown();})
$( " .add,.dec " ).focus( function (e){$(e.target).blur()}) // 取消a标签的聚焦虚线框
})