jslb_fades001.js
3.02 KB
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
// @license 著作権表示義務無し。商用利用、改造、自由。連絡不要。
////
//BGフェイド
//@parem id BGフェイドさせるDIVのID名
//@sample oj = new fadeBgclGry('contents')
//@requires jslb_ajax038.js 簡易Ajaxライブラリ
//@requires jslb_progressbar001.js プログレスバーライブラリ
//@requires jslb_cacheajax001.js Ajaxキャッシュ機構
function fadeBgclGry(id){
var div = "document.getElementById('"+id+"')";
var count = 0;
var tid = 0;
//@sample oj.doBgFade('3456789abcde')
this.doBgFade = function (f){
count = 0;
clearInterval(tid);
tid = setInterval( function(){fade(f)} ,30);
}
function fade(f){
if(!f)var f = "3456789abcdef";
if(count < f.length){
var b = f.charAt(count);
setBgcolor( '#'+b+b+b+b+b+b );
count++;
} else {
clearInterval(tid);
}
}
function setBgcolor(color){
if(document.getElementById) //e5,e6,n6,n7,m1,o6,o7,s1用
eval(div).style.backgroundColor =color
}
}
////
// 不透明フェイド関数
//
// @sample fadeOpacity('drgbbs',1,0.7)
//
//
function fadeOpacity(layName,swt,stopOpacity){
if(!window.fadeOpacity[layName]) //カウンター初期化
fadeOpacity[layName] =0
//フェイドスイッチ引数省略時初期値(不透明から透明へ)
if(!arguments[1]) swt = -1
//引数swtが -1 なら不透明から透明へ
// 1 なら透明から不透明へフェイドする
if(swt==-1) var f = "9876543210"
else if(swt==1) var f = "0123456789"
else var f = "9876543210"
//停止不透明度引数省略時初期値
if(!arguments[2] && swt==-1) stopOpacity = 0
else if(!arguments[2] && swt==1) stopOpacity = 10
//フェイド処理
if( fadeOpacity[layName] < f.length-1 ){
//カウンター番目の文字列を取り出す
var opa = f.charAt(fadeOpacity[layName])/10
//終了時不透明度なら終了
if( opa == stopOpacity ){
setOpacity(layName,stopOpacity) //終了
fadeOpacity[layName] = 0 //リセット
return
}
// 不透明度変更を実行する
setOpacity(layName,opa)
// カウンターを加算
fadeOpacity[layName]++
//--50/1000秒後にfadeOpacityを再実行
setTimeout('fadeOpacity("'+layName+'","'+swt+'","'+stopOpacity+'")',50)
} else {
//終了
setOpacity(layName,stopOpacity)
//--リセット
fadeOpacity[layName] = 0
}
}
function setOpacity(layName,arg) {
if(window.opera)return
var ua = navigator.userAgent
if(ua.indexOf('Safari') !=-1 || ua.indexOf('KHTML') !=-1 ) {
document.getElementById(layName).style.opacity = arg
} else if(document.all) { //win-e4,win-e5,win-e6
document.all(layName).style.filter="alpha(opacity=0)"
document.all(layName).filters.alpha.Opacity = (arg * 100)
} else if(ua.indexOf('Gecko')!=-1) //n6,n7,m1
document.getElementById(layName).style.MozOpacity = arg
}