PageSourceSearch

https://www.yashima.ac.jp/univ/_resources/js/script.js

js yashima.ac.jp collected 2026-09-29 11:37:32 UTC 11,469 bytes, 375 lines download raw bytes

1/**
2 * クロスフェードするロールオーバー処理
3 * rollover2.js
4 * Copyright (c) 2007 KAZUMiX
5 * http://d.hatena.ne.jp/KAZUMiX/20071017/rollover2
6 * 
7 * Licensed under the MIT License:
8 * http://www.opensource.org/licenses/mit-license.php
9 * 
10 * 更新履歴
11 * 2009/06/02 ブラウザの「戻る」でフェード状態が残っている場合に対処
12 * 2007/10/17 公開
13 */
14
15(function(){
16   // ページ遷移時に透明にする用
17   var rolloverImages = [];
18   
19   function setRollOver2(){
20     if(!document.images){return;}
21     var imgs = document.images;
22     var insert = [];
23     for(var i=0,len=imgs.length; i<len; i++){
24       var splitname = imgs[i].src.split('_off.');
25       if(splitname[1]){
26         var rolloverImg = document.createElement('img');
27         rolloverImages.push(rolloverImg);
28         rolloverImg.src = splitname[0]+'_on.'+splitname[1];
29         var alpha = 0;
30         rolloverImg.currentAlpha = alpha;
31         rolloverImg.style.opacity = alpha/100;
32         rolloverImg.style.filter = 'alpha(opacity='+alpha+')';
33         rolloverImg.style.position = 'absolute';
34
35         //ロールオーバー・アウト処理それぞれを設定
36         addEvent(rolloverImg,'mouseover',function(){setFader(this,100);});
37         addEvent(rolloverImg,'mouseout',function(){setFader(this,0);});
38
39         // 後で追加するために追加場所と共に保存しておく
40         // この時点で追加するとdocument.imagesが書き換わって不都合
41         insert[insert.length] = {position:imgs[i],element:rolloverImg};
42       }
43     }
44     // ↑で作ったロールオーバー画像を追加
45     for(i=0,len=insert.length; i<len ;i++){
46       var parent = insert[i].position.parentNode;
47       parent.insertBefore(insert[i].element,insert[i].position);
48     }
49
50     // ページ遷移時にはフェード状態をクリアする
51     addEvent(window,'beforeunload', clearRollover);
52   }
53
54   // 指定要素を指定透明度にするためのフェードアニメを設定する関数
55
56   function setFader(targetObj,targetAlpha){
57     targetObj.targetAlpha = targetAlpha;
58     if(targetObj.currentAlpha==undefined){
59       targetObj.currentAlpha = 100;
60     }
61     if(targetObj.currentAlpha==targetObj.targetAlpha){
62       return;
63     }
64     if(!targetObj.fading){
65       if(!targetObj.fader){
66         targetObj.fader = fader;
67       }
68       targetObj.fading = true;
69       targetObj.fader();
70     }
71   }
72
73   // アルファ値をターゲット値に近づける関数
74   // ターゲット値になったら終了
75
76   function fader(){
77     this.currentAlpha += (this.targetAlpha - this.currentAlpha)*1;
78     if(Math.abs(this.currentAlpha-this.targetAlpha)<1){
79       this.currentAlpha = this.targetAlpha;
80       this.fading = false;
81     }
82     var alpha = parseInt(this.currentAlpha);
83     this.style.opacity = alpha/100;
84     this.style.filter = 'alpha(opacity='+alpha+')';
85     if(this.fading){
86       var scope = this;
87       setTimeout(function(){fader.apply(scope)},30);
88     }
89   }
90   
91   // すべてのロールオーバー画像をを透明にする関数(遷移時用)
92
93   function clearRollover(){
94     for(var i=0,len=rolloverImages.length; i<len; i++){
95       var image = rolloverImages[i];
96       image.style.opacity = 0;
97       image.style.filter = 'alpha(opacity=0)';
98     }
99   }
100
101   // イベントを追加する関数
102
103   function addEvent(eventTarget, eventName, func){
104     if(eventTarget.addEventListener){
105       // モダンブラウザ
106       eventTarget.addEventListener(eventName, func, false);
107     }else if(window.attachEvent){
108       // IE
109       eventTarget.attachEvent('on'+eventName, function(){func.apply(eventTarget);});
110     }
111   }
112
113   addEvent(window,'load',setRollOver2);
114
115 })();
116
117/* for rollover -----------------------------------------*/
118
119function MM_swapImgRestore() { //v3.0
120	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
121}
122
123function MM_preloadImages() { //v3.0
124	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
125	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
126	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
127}
128
129function MM_findObj(n, d) { //v4.01
130	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
131	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
132	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
133	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
134	if(!x && d.getElementById) x=d.getElementById(n); return x;
135}
136
137function MM_swapImage() { //v3.0
138	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
139	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
140}
141
142
143
144
145/* for fontsize change --------------------------------------------------------*/
146/*
147===========================================================
148フォントサイズ変更スクリプト(タイプB)
149
150Last Updated:08/21/2001
151   10/23/2001最終更新版より下記のURIのみ変更
152
153insomnia!
154http://insomnia.jp/
155http://insomnia.jp/workshop/
156===========================================================
157*/
158
159
160/*
161========== ::: ブラウザ判別時に使用する変数 ::: ==========
162*/
163uaName = navigator.userAgent;
164appName = navigator.appVersion;
165
166
167/*
168========== ::: 初期設定 ::: ==========
169*/
170
171// 値の単位を設定(必ずダブルクオートかクオートで括る)
172var fontSizeUnit = "%";
173
174// 一回の操作で変化させる値を設定(ダブルクオートやクオートで括らない)
175var perOrder = 20;
176
177// 初期状態の値を設定(ダブルクオートやクオートで括らない)
178var defaultSize = 80;
179
180// クッキーの名前(必ずダブルクオートかクオートで括る)
181var ckName = "FSCb";
182
183// クッキーの有効期限(日)(ダブルクオートやクオートで括らない)
184var ckDays = 2;
185
186// クッキーのパス(必ずダブルクオートかクオートで括る。指定がいらない場合は"/"にする)
187var ckPath = "/"
188
189
190/*
191========== :::ページ読み込み時の値を設定::: ==========
192*/
193
194// クッキー読み出し
195var fsCK = GetCookie(ckName);
196
197if ( fsCK == null ) {
198  currentSize = defaultSize;      //クッキーが無ければ現在の値を初期状態の値に設定
199}
200else{
201  currentSize = Number(fsCK);      //クッキーがあれば現在の値をクッキーの値に設定
202}
203
204
205/*===================================
206  [関数 fscRef]
207  BODY要素のイベントハンドラ"onload"ならびに関数fscから呼び出される。
208  変数"currentSize"の値に従って
209  オブジェクトのfontStyleプロパティを変更する
210====================================*/
211
212function fscRef(){
213
214  // === ::: 変更を加えるオブジェクトの判定 ::: ===
215  //
216  //  NN4もしくはMacIE4.0の場合、エラーメッセージを回避
217  if (( document.layers )||(( appName.indexOf("Mac",0) != -1 ) && ( uaName.indexOf("MSIE 4.0",0) != -1 ))){
218    return false;
219  }
220
221  else if( document.body ){
222  
223  // オブジェクトのfontSizeプロパティを書き換える
224  //document.body.style.fontSize = currentSize + fontSizeUnit;
225  }
226  
227}
228
229// _______________________________________ end of function fscRef() ___ 
230
231
232/*===================================
233  [関数 fsc]
234  引数CMDに渡される値に応じて
235  変更後の値を算出しクッキーに書き込む。
236====================================*/
237
238function fsc( CMD ){
239
240  // 拡大:現時点の値に一回の操作で変化させる値を加えて操作後の値"newSize"に代入
241  if( CMD == "larger" ){
242    var newSize = Number( currentSize + perOrder );
243    SetCookie( ckName , newSize );      //クッキー書き込み
244  }
245
246  // 縮小:現時点の値から一回の操作で変化させる値を引き操作後の値に代入
247  // 現時点のサイズの値が一回の操作で変化させる値と同じならそのまま操作後の値に代入
248  if( CMD == "smaller" ){
249    if ( currentSize != perOrder ){
250      var newSize = Number( currentSize - perOrder );
251      SetCookie( ckName , newSize );      //クッキー書き込み
252    }
253    else{
254      var newSize=Number(currentSize);
255    }
256  }
257
258  // 元に戻す:操作後の値を初期値にする
259  if( CMD == "default" ){
260    var newSize = defaultSize;
261    DeleteCookie( ckName );      //クッキー削除
262  }
263
264
265  // NN4もしくはMacIE4.0の場合、エラーメッセージを回避しダイアログを表示する
266  // NN4用ダイアログ
267  if( document.layers ){
268    window.alert( "このスクリプトはNetscape Communicator4.xでは動作しません" );
269    return false;
270  }
271
272  // MacIE4用ダイアログ
273  else if(( appName.indexOf("Mac",0) != -1 ) && ( uaName.indexOf("MSIE 4.0",0) != -1)){
274    window.alert( "Sorry! MacIE4.0 is not supported." );
275    return false;
276  }
277
278  else{
279  // 現在の値を操作後の値に変更
280  currentSize = newSize;
281
282  // サイズ変更関数を呼び出す
283  fscRef();
284  }
285}
286
287// _______________________________________ end of function fsc() ___ 
288
289
290/*===================================
291  [関数 SetCookie]
292  クッキーに値を書き込む
293====================================*/
294
295function SetCookie(name,value){
296  var dobj = new Date();
297  dobj.setTime( dobj.getTime() + 24 * 60 * 60 * ckDays * 1000);
298  var expiryDate = dobj.toGMTString();
299  document.cookie = name + '=' + escape(value)+ ';expires=' + expiryDate + ';path=' + ckPath;
300}
301
302
303/*===================================
304  [関数 GetCookie]
305  クッキーを取得する
306====================================*/
307function GetCookie (name){
308  var arg  = name + "=";
309  var alen = arg.length;
310  var clen = document.cookie.length;
311  var i = 0;
312  while (i < clen){
313    var j = i + alen;
314    if (document.cookie.substring(i, j) == arg)
315    return getCookieVal (j);
316    i = document.cookie.indexOf(" ", i) + 1;
317    if (i == 0) break;
318  }
319   return null;
320}
321
322/*===================================
323  [関数 getCookieVal]
324  クッキーの値を抽出する
325====================================*/
326function getCookieVal (offset){
327  var endstr = document.cookie.indexOf (";", offset);
328  if (endstr == -1)
329  endstr = document.cookie.length;
330  return unescape(document.cookie.substring(offset,endstr));
331}
332
333/*===================================
334  [関数 DeleteCookie]
335  クッキーを削除する
336====================================*/
337function DeleteCookie(name){
338  if (GetCookie(name)) {
339    document.cookie = name + '=' +
340    '; expires=Thu, 01-Jan-70 00:00:01 GMT;path='+ckPath;
341  }
342}
343
344//EOF
345
346
347/* PCスマホ切り替え */
348/*function SetCookie2(name,value){
349  document.cookie = name + '=' + escape(value);
350}
351
352
353var cookie_val =GetCookie("argent3");
354
355
356if (navigator.cookieEnabled){
357
358		if(!cookie_val){
359			
360			SetCookie2("argent3","checked");
361			
362			if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || (navigator.userAgent.indexOf('Android') > 0 && navigator.userAgent.indexOf('Mobile') > 0)) {
363				
364				var res = confirm("スマートフォンに最適化されたページに移動しますか?");
365				
366				// 選択結果で分岐
367				if( res == true ) {
368				 // OKなら移動
369					location.href = '/univ/sp/';
370				}
371			}
372
373		}
374
375}*/

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.