폰트사이즈 조절 스크립트 .data() 이용하도록 수정
This commit is contained in:
57
js/common.js
57
js/common.js
@ -522,6 +522,7 @@ var win_poll = function(href) {
|
|||||||
/**
|
/**
|
||||||
* 텍스트 리사이즈
|
* 텍스트 리사이즈
|
||||||
**/
|
**/
|
||||||
|
var default_font_size_saved = false;
|
||||||
function font_resize(id, act)
|
function font_resize(id, act)
|
||||||
{
|
{
|
||||||
var $elements = $("#"+id+" *").not("select").not("option");
|
var $elements = $("#"+id+" *").not("select").not("option");
|
||||||
@ -530,6 +531,11 @@ function font_resize(id, act)
|
|||||||
if(isNaN(count))
|
if(isNaN(count))
|
||||||
count = 0;
|
count = 0;
|
||||||
|
|
||||||
|
// 엘리먼트의 기본 폰트사이즈 저장
|
||||||
|
if(!default_font_size_saved) {
|
||||||
|
save_default_font_size($elements);
|
||||||
|
}
|
||||||
|
|
||||||
// 크롬의 최소 폰트사이즈 버그로 작게는 한단계만 가능
|
// 크롬의 최소 폰트사이즈 버그로 작게는 한단계만 가능
|
||||||
if(act == "decrease" && count == -1)
|
if(act == "decrease" && count == -1)
|
||||||
return;
|
return;
|
||||||
@ -538,26 +544,8 @@ function font_resize(id, act)
|
|||||||
if($(this).hasClass("no_text_resize"))
|
if($(this).hasClass("no_text_resize"))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if($(this).children().length != 0) {
|
if($(this).data("fs")) {
|
||||||
return true;
|
set_font_size($(this), act)
|
||||||
} else {
|
|
||||||
set_font_size($(this), act);
|
|
||||||
|
|
||||||
// 텍스트 노드가 있는지 체크
|
|
||||||
var $parent = $(this).parent();
|
|
||||||
var text = $parent.contents().filter(function() {
|
|
||||||
return this.nodeType == 3;
|
|
||||||
}).text().replace(/\s*/, "");
|
|
||||||
|
|
||||||
if(text.length) {
|
|
||||||
// 텍스트노드의 형제가 있을 경우 마지막 형제에
|
|
||||||
// 스타일 적용 후 부모에 폰트 스타일 적용
|
|
||||||
var $child = $parent.children();
|
|
||||||
var chdlen = $child.length;
|
|
||||||
if(chdlen == ($child.index($(this)) + 1)) {
|
|
||||||
set_font_size($parent, act);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -615,13 +603,13 @@ function font_resize2(id, act, loop)
|
|||||||
/**
|
/**
|
||||||
* font size 적용
|
* font size 적용
|
||||||
**/
|
**/
|
||||||
function set_font_size(el, act)
|
function set_font_size($el, act)
|
||||||
{
|
{
|
||||||
if(el.hasClass("applied"))
|
if($el.hasClass("applied"))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var x = 0;
|
var x = 0;
|
||||||
var fs = el.css("font-size");
|
var fs = $el.data("fs");
|
||||||
var unit = fs.replace(/[0-9\.]/g, "");
|
var unit = fs.replace(/[0-9\.]/g, "");
|
||||||
var fsize = parseFloat(fs.replace(/[^0-9\.]/g, ""));
|
var fsize = parseFloat(fs.replace(/[^0-9\.]/g, ""));
|
||||||
var nfsize;
|
var nfsize;
|
||||||
@ -640,7 +628,28 @@ function set_font_size(el, act)
|
|||||||
|
|
||||||
nfsize = nfsize.toFixed(x);
|
nfsize = nfsize.toFixed(x);
|
||||||
|
|
||||||
el.css("font-size", nfsize+unit).addClass("applied");
|
$el.css("font-size", nfsize+unit).addClass("applied");
|
||||||
|
$el.data("fs", nfsize+unit);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 기본 font size .data()에 저장
|
||||||
|
**/
|
||||||
|
function save_default_font_size($el)
|
||||||
|
{
|
||||||
|
$el.each(function() {
|
||||||
|
// 텍스트노드 있는지 체크
|
||||||
|
var text = $(this).contents().filter(function() {
|
||||||
|
return this.nodeType == 3;
|
||||||
|
}).text().replace(/\s*/, "");
|
||||||
|
|
||||||
|
if(text.length) {
|
||||||
|
$(this).data("fs", $(this).css("font-size"));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
default_font_size_saved = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user