在做公司的官網的時候,新聞內頁會有一個讓瀏覽者自己調整文字大小的功能,因此在這個空閒時間,把這個功能整理下來:
function setFontSize (id,content,params){ var oTarget = document.getElementById(id), content = document.getElementById(content), size = params.size || 14, maxSize = params.maxSize || 20, step = params.step || 2; oBtn = '<input type="button" value="+"/><input type="button" value="-" />'; oBtn1 = null, oBtn2 = null; oTarget.innerHTML = oBtn; oBtn1 = oTarget.childNodes[0]; oBtn2 = oTarget.childNodes[1]; oBtn1.onclick=function(){ if(size+step <= maxSize){ size+=step; }else{ size = maxSize; this.className+=' disabled'; this.disabled = true; } oBtn2.className.replace('disabled',''); oBtn2.disabled = false; content.style.fontSize = size +'px'; } oBtn2.onclick=function(){ if(size-step >= 12){ size-=step; }else{ size = 12; this.className+=' disabled' this.disabled = true; } oBtn1.className.replace('disabled',''); oBtn1.disabled = false; content.style.fontSize = size +'px'; } }
調用方式:
setFontSize(id,contentid,{size:,maxSize,step:}); /* * id :用于存放增加或减小两个按钮的父级盒子的id。 * contentid: 存放内容的id。 * {} 一个对象,用于提供设置的参数。 |— szie : 字体起始(默认)大小。 |— maxSize : 最大字体。 |— step : 增长的步长值。 */
rrreee
提示:可以透過font-size:0的方式來隱藏Input元素的value值,然後自訂按鈕的樣式。