-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjquery.mk_styleAdjust_icon.js
125 lines (96 loc) · 3.12 KB
/
jquery.mk_styleAdjust_icon.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
;/* $.mk_styleAdjust_icon
****************************************************************************
/////////////////////////////////////////////////////////////////////////
@varsion : 1.0.1
@requires : jquery.js
@author : http://www.makinokobo.com - oosugi
@last update : 2010.11.04 - oosugi
@Copyright : Copyright (c) 2010 Skill Partners Inc. All Rights Reserved.
/////////////////////////////////////////////////////////////////////////
アイコン画像を各ブラウザで差異を最小限におさえ行間の中央に調整するプラグイン。
IE 6 メイリオ環境では若干上のずれる。
純正 IE 6 環境でメイリオがインストールされているPCは小数であろうことから現状はこれで可とする。
Config
-------------------------------------------------------------------------
[適応箇所の文字サイズ] * [任意] px 分、左右にmarginをとる。
$(SELECTOR).mk_styleAdjust_icon({
marginRight: 1/4, // 文字サイズ * 1/4 px 分 margin-right
marginLeft : 0.2 // 文字サイズ * 0.2 px 分 margin-left
});
$(SELECTOR).mk_styleAdjust_icon({
marginLeft: 0, // 文字サイズ * 0 px 分 margin-left つまり、margin-left: 0
});
****************************************************************************/
(function($){
$(function(){
$('img.mk_styleAdjust_icon').mk_styleAdjust_icon();
});
$.fn.mk_styleAdjust_icon = function(config){
config = $.extend({},$.mk_styleAdjust_icon.defaults,config);
return this.each(function(){
var $this = $(this);
var w = $this.width();
var h = $this.height();
var fz = Number($this.css('font-size').replace('px',''));
var mr = fz*config.marginRight;
var ml = fz*config.marginLeft;
var $wrap = $('<span/>',{
'class': config.iconClass
});
if(navigator.userAgent.indexOf("MSIE 6") != -1){
$wrap.css({
position: 'relative',
top: '0.5em',
paddingRight: w+mr+ml+'px'
});
}
$this.wrap($wrap);
if(h>fz){
$this.css({
marginTop: '-'+(h-fz)+'px',
marginBottom: '-'+(h-fz)+'px'
});
}
$this.css({
verticalAlign: 'middle',
marginRight: mr+'px',
marginLeft: ml+'px'
});
// 親要素が上にマイナスマージンしてたとき用
var parentMt = $this.parent().parent().css('margin-top').replace('px','');
if($this.closest('a').size()){
parentMt = $this.parent().parent().parent().css('margin-top').replace('px','');
}
if(parentMt<0){
$this.css({
position: 'relative',
top: parentMt/2+'px'
});
}
if(navigator.userAgent.indexOf("MSIE 6") != -1){
$this.css({
verticalAlign: 'baseline',
position: 'absolute',
top: '0',
marginTop: '-'+h/2+'px',
marginBottom: 0,
marginRight: 0,
marginLeft: ml
});
if(parentMt<0){
$this.css({
top: (parentMt/2)*(-1)+'px'
});
}
}
});
};
$.mk_styleAdjust_icon = {
version: '1.0.1',
defaults: {
iconClass: 'mk_styleAdjust_icon',
marginRight: 1/4,
marginLeft : 1/4
}
};
})(jQuery);