-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
base.js
executable file
·248 lines (216 loc) · 6.47 KB
/
base.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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
/*--------------------------------
広告のフロート
-------------------------------*/
(function(jquery) {
jquery(document).ready(function() {
/*
Ads Sidewinder
by Hamachiya2. http://d.hatena.ne.jp/Hamachiya2/20120820/adsense_sidewinder
*/
var main = jQuery('#main'); // メインカラムのID
var side = jQuery('#side'); // サイドバーのID
var wrapper = jQuery('#ad1'); // 広告を包む要素のID
if (main.length === 0 || side.length === 0 || wrapper.length === 0) {
return;
}
var w = jquery(window);
var wrapperHeight = wrapper.outerHeight();
var wrapperTop = wrapper.offset().top;
var sideLeft = side.offset().left;
var sideMargin = {
top: side.css('margin-top') ? side.css('margin-top') : 0,
right: side.css('margin-right') ? side.css('margin-right') : 0,
bottom: side.css('margin-bottom') ? side.css('margin-bottom') : 0,
left: side.css('margin-left') ? side.css('margin-left') : 0
};
var winLeft;
var pos;
var scrollAdjust = function() {
sideHeight = side.outerHeight();
mainHeight = main.outerHeight();
mainAbs = main.offset().top + mainHeight;
var winTop = w.scrollTop();
winLeft = w.scrollLeft();
var winHeight = w.height();
var nf = (winTop > wrapperTop) && (mainHeight > sideHeight) ? true : false;
pos = !nf ? 'static' : (winTop + wrapperHeight) > mainAbs ? 'absolute' : 'fixed';
if (pos === 'fixed') {
side.css({
position: pos,
top: '',
bottom: winHeight - wrapperHeight,
left: sideLeft - winLeft,
margin: 0
});
} else if (pos === 'absolute') {
side.css({
position: pos,
top: mainAbs - sideHeight,
bottom: '',
left: sideLeft,
margin: 0
});
} else {
side.css({
position: pos,
marginTop: sideMargin.top,
marginRight: sideMargin.right,
marginBottom: sideMargin.bottom,
marginLeft: sideMargin.left
});
}
};
var resizeAdjust = function() {
side.css({
position:'static',
marginTop: sideMargin.top,
marginRight: sideMargin.right,
marginBottom: sideMargin.bottom,
marginLeft: sideMargin.left
});
sideLeft = side.offset().left;
winLeft = w.scrollLeft();
if (pos === 'fixed') {
side.css({
position: pos,
left: sideLeft - winLeft,
margin: 0
});
} else if (pos === 'absolute') {
side.css({
position: pos,
left: sideLeft,
margin: 0
});
}
};
w.on('load', scrollAdjust);
w.on('scroll', scrollAdjust);
w.on('resize', resizeAdjust);
});
})(jQuery);
/*--------------------------------
フッターを最下部に
-------------------------------*/
/*--------------------------------------------------------------------------*
*
* footerFixed.js
*
* MIT-style license.
*
* 2007 Kazuma Nishihata [to-R]
* http://blog.webcreativepark.net
*
*--------------------------------------------------------------------------*/
new function(){
var footerId = "footer";
//メイン
function footerFixed(){
//ドキュメントの高さ
var dh = document.getElementsByTagName("body")[0].clientHeight;
//フッターのtopからの位置
document.getElementById(footerId).style.top = "0px";
var ft = document.getElementById(footerId).offsetTop;
//フッターの高さ
var fh = document.getElementById(footerId).offsetHeight;
//ウィンドウの高さ
if (window.innerHeight){
var wh = window.innerHeight;
}else if(document.documentElement && document.documentElement.clientHeight != 0){
var wh = document.documentElement.clientHeight;
}
if(ft+fh<wh){
document.getElementById(footerId).style.position = "relative";
document.getElementById(footerId).style.top = (wh-fh-ft-1)+"px";
}
}
//文字サイズ
function checkFontSize(func){
//判定要素の追加
var e = document.createElement("div");
var s = document.createTextNode("S");
e.appendChild(s);
e.style.visibility="hidden"
e.style.position="absolute"
e.style.top="0"
document.body.appendChild(e);
var defHeight = e.offsetHeight;
//判定関数
function checkBoxSize(){
if(defHeight != e.offsetHeight){
func();
defHeight= e.offsetHeight;
}
}
setInterval(checkBoxSize,1000)
}
//イベントリスナー
function addEvent(elm,listener,fn){
try{
elm.addEventListener(listener,fn,false);
}catch(e){
elm.attachEvent("on"+listener,fn);
}
}
addEvent(window,"load",footerFixed);
addEvent(window,"load",function(){
checkFontSize(footerFixed);
});
addEvent(window,"resize",footerFixed);
}
/*-------------
ページスクロール
-----------*/
jQuery(function() {
var pageTop = jQuery('#page-top');
pageTop.hide();
//スクロールが400に達したら表示
jQuery(window).scroll(function () {
if(jQuery(this).scrollTop() > 400) {
pageTop.fadeIn();
} else {
pageTop.fadeOut();
}
});
//スクロールしてトップ
pageTop.click(function () {
jQuery('body,html').animate({
scrollTop: 0
}, 800);
return false;
});
});
/*---------------------------
アコーディオン
------------------------------*/
jQuery(document).ready(function(){
//acordion_treeを一旦非表示に
jQuery(".acordion_tree").css("display","none");
//triggerをクリックすると以下を実行
jQuery(".trigger").click(function(){
//もしもクリックしたtriggerの直後の.acordion_treeが非表示なら
if(jQuery("+.acordion_tree",this).css("display")=="none"){
//classにactiveを追加
jQuery(this).addClass("active");
//直後のacordion_treeをスライドダウン
jQuery("+.acordion_tree",this).slideDown("normal");
}else{
//classからactiveを削除
jQuery(this).removeClass("active");
//クリックしたtriggerの直後の.acordion_treeが表示されていればスライドアップ
jQuery("+.acordion_tree",this).slideUp("normal");
}
});
});
/*---------------------------
ドロップダウン
------------------------------*/
jQuery(document).ready(function(){
jQuery(".menu ul.children").hide();
jQuery("li.page_item").hover(function() {
jQuery("ul.children",this).slideDown("slow");
},
function() {
jQuery("ul.children",this).slideUp("slow");
});
});