PageSourceSearch

https://www.tsagroup.jp/shared/js/library2.0.4.js

js tsagroup.jp collected 2026-10-04 13:18:11 UTC 14,585 bytes, 635 lines download raw bytes

1/*-----------------------------------------------------
2library.js v2.0.4 - 2013.09.19
3
4@Library
5├ rollover
6├ active
7├ boxhover
8├ scroll
9├ fontsize
10├ flatHeight
11└ Utility
12 ├ getHash
13 ├ hasHash
14 ├ observer
15 ├ replaceImg
16 ├ resizeStop
17 ├ scrollStop
18 └ shuffle
19
20Copyright(c) INVOGUE.CO,. Ltd. ALL Rights Reserved.
21http://www.invogue.co.jp/
22-------------------------------------------------------*/
23
24;var Library = Library || {};
25
26(function($){
27	/**
28	 * rollover v0.1.2 - 2013.08.30
29	 */
30	Library.rollover = function(options){
31		var o = $.extend({
32			// rollover option
33			$rollover     : $('img.rover, input.rover, .all-rover img'),
34			groupRollover : 'group-rover',
35			rolloverActive: 'active-rover',
36			noRollover    : 'no-rover',
37			postfix       : '_on',
38			// alpha option
39			$alpha     : $('img.alpha, input.alpha, .all-alpha img'),
40			groupAlpha : 'group-alpha',
41			alphaActive: 'active-alpha',
42			noAlpha    : 'no-alpha',
43			opacity    : .7,
44			duration   : 0,
45			easing     : 'linear'
46		}, options);
47
48		var PARAM = {
49			isGroupRollover: $('.' + o.groupRollover)[0],
50			isGroupAlpha   : $('.' + o.groupAlpha)[0]
51		};
52
53		var init = function(){
54			if(options){
55				if(options.$rollover && options.$alpha){
56					setRollover();
57					setAlpha();
58				} else if(options.$rollover){
59					setRollover();
60				} else if(options.$alpha){
61					setAlpha();
62				}
63			} else {
64				if(o.$rollover[0]){
65					setRollover();
66				}
67				if(o.$alpha[0]){
68					setAlpha();
69				}
70			}
71
72			// history back対策
73			$(window).on('unload', function(){
74				Library.rollover();
75			});
76		};
77
78		var setRollover = function(){
79			var i = 0, l = o.$rollover.length;
80			for(; i < l; i+=1){
81				rollover(o.$rollover.eq(i));
82			}
83		};
84
85		var rollover = function($target){
86			if($target.hasClass(o.noRollover)) return false;
87			var $t = $target;
88			$t.offSrc = $t.attr('src');
89			$t.ext    = $t.offSrc.substring($t.offSrc.lastIndexOf('.'), $t.offSrc.length);
90			if($t.offSrc.lastIndexOf(o.postfix + $t.ext) > -1){
91				$t.onSrc = $t.offSrc;
92				$t.offSrc = $t.offSrc.replace(o.postfix + $t.ext, $t.ext);
93				$t[0].src = $t.offSrc;
94				$t.css({cursor: 'pointer'});
95			} else {
96				$t.onSrc = $t.offSrc.replace($t.ext, o.postfix + $t.ext);
97			}
98
99			var preload = new Image();
100			preload.src = $t.onSrc;
101
102			// active処理
103			if($t.hasClass(o.rolloverActive)){
104				$t[0].src = $t.onSrc;
105				$t.hover(
106					function(){ $(this).attr('src', $t.onSrc)},
107					function(){ $(this).attr('src', $t.onSrc)}
108				);
109				return false;
110			}
111
112			// groupRollover
113			if(PARAM.isGroupRollover && $t.closest('.' + o.groupRollover)[0]){
114				$t.closest('.' + o.groupRollover).hover(
115					function(){ $t.attr('src', $t.onSrc)},
116					function(){ $t.attr('src', $t.offSrc)}
117				);
118			} else {
119				$t.hover(
120					function(){ $(this).attr('src', $t.onSrc)},
121					function(){ $(this).attr('src', $t.offSrc)}
122				);
123			}
124		};
125
126		var setAlpha = function(){
127			if(options){
128				 o.$alpha.css({cursor: 'pointer'});
129			}
130			var i = 0, l = o.$alpha.length;
131			for(; i < l; i+=1){
132				alpha(o.$alpha.eq(i));
133			}
134		}
135
136		var alpha = function($target){
137			var $t = $target;
138			if($t.hasClass(o.noAlpha)){
139				return false;
140			} else if($t.hasClass(o.alphaActive)){
141				if(0 < o.duration){
142					$t.stop(true, false).animate({opacity: o.opacity}, o.duration, o.easing);
143				} else {
144					$t.css('opacity', o.opacity);
145				}
146				$t.hover(
147					function(){ $t.css({opacity: o.opacity});},
148					function(){ $t.css({opacity: o.opacity});}
149				);
150				return false;
151			}
152
153			if(options){
154				$t.css({opacity: 1});
155			}
156
157			// groupAlpha
158			if(PARAM.isGroupAlpha && $t.closest('.' + o.groupAlpha)[0]){
159				if(0 < o.duration){
160					$t.closest('.' + o.groupAlpha).hover(
161						function(){ $t.stop(true, false).animate({opacity: o.opacity}, o.duration, o.easing)},
162						function(){ $t.stop(true, false).animate({opacity: 1}, o.duration, o.easing)}
163					);
164				} else {
165					$t.closest('.' + o.groupAlpha).hover(
166						function(){ $t.css({opacity: o.opacity});},
167						function(){ $t.css({opacity: 1});}
168					);
169				}
170			} else {
171				if(0 < o.duration){
172					$t.hover(
173						function(){ $(this).stop(true, false).animate({opacity: o.opacity}, o.duration, o.easing);},
174						function(){ $(this).stop(true, false).animate({opacity: 1}, o.duration, o.easing);}
175					);
176				} else {
177					$t.hover(
178						function(){ $(this).css({opacity: o.opacity});},
179						function(){ $(this).css({opacity: 1});}
180					);
181				}
182			}
183		};
184		return init();
185	};
186
187
188	/**
189	 * active v0.1 - 2013.03.27
190	 */
191	Library.active = function($target, options){
192		var o = $.extend({
193			type       : 'rover',
194			activeClass: 'active',
195			isClick    : false,
196			postfix    : '_on'
197		}, options);
198
199		var set = function(){
200			$target.addClass(o.activeClass);
201
202			if(o.type == 'rover'){
203				Library.rollover({
204					$rollover     : $target,
205					rolloverActive: o.activeClass,
206					postfix       : o.postfix
207				});
208			} else if(o.type == 'alpha') {
209				Library.rollover({
210					$alpha     : $target,
211					alphaActive: o.activeClass
212				});
213			};
214
215			if(o.isClick){
216				$target.css({cursor: 'default'}).off().on('click', function(){
217					return false;
218				});
219			}
220		};
221		return set();
222	};
223
224
225	/**
226	 * boxhover v0.1.3 - 2013.08.21
227	 */
228	Library.boxhover = function($target, options){
229		var o = $.extend({
230			hoverClass: 'hover',
231			linkClass : 'link'
232		}, options);
233
234		var init = function(){
235			$target.css({cursor: 'pointer'});
236
237			var i = 0, l = $target.length;
238			for(; i < l; i+=1){
239				set($target.eq(i));
240			}
241		};
242
243		var set = function($target){
244			$target.hover(
245				function(){ $(this).addClass(o.hoverClass);},
246				function(){ $(this).removeClass(o.hoverClass)}
247			);
248
249			$target.click(function(e){
250				var target = e.target, $a;
251				if(target.href && !target.src){
252					$a = $(target);
253				} else if($(target).closest('a')[0]){
254					$a = $(target).closest('a');
255				} else if($(this).find('.' + o.linkClass)[0]){
256					$a = $(this).find('.' + o.linkClass);
257				} else {
258					$a = $(this).find('a').eq(0);
259				}
260
261				if($a.attr('target') == '_blank'){
262					window.open($a.attr('href'), '_blank');
263				} else {
264					location.href = $a.attr('href');
265				}
266
267				return false;
268			});
269		};
270
271		return init();
272	};
273
274
275	/**
276	 * scroll v0.1.5 - 2013.09.18
277	 */
278	Library.scroll = function($trigger, options){
279		var o = $.extend({
280			adjust       : 0,
281			duration     : 600,
282			easing       : 'easeOutExpo',
283			noScrollClass: 'no-scroll',
284			callback     : $.noop
285		}, options);
286
287		var init = function(){
288			// スクロールイベントの重複回避
289			$trigger.off('click');
290
291			var $a,	i = 0, l = $trigger.length;
292			for(; i < l; i+=1){
293				$a = $trigger.eq(i);
294				if($a.hasClass(o.noScrollClass) || !$($a.attr('href'))[0]) continue;
295				$a.on('click', tween);
296			};
297		};
298
299		var tween = function(){
300			if($(this).hasClass(o.noScrollClass)) return;
301			var moveTo = $($(this).attr('href')).offset().top - o.adjust;
302			if($(window).scrollTop() != moveTo){
303				$('html, body').stop(true, false).animate({ scrollTop: moveTo}, o.duration, o.easing, function(){
304					o.callback();
305				});
306			}
307			return false;
308		};
309
310		return init();
311	};
312
313
314	/**
315	 * fontsize v0.1 - 2013.04.08
316	 */
317	Library.fontsize = function($trigger, options){
318		var o = $.extend({
319	    $wrap      : $('body'),
320	    cookieName : 'FontSize',
321	    value      : 'FontM',
322	    type       : 'rover', // rover || alpha || text
323	    activeClass: 'active'
324		}, options);
325
326		var PARAM = {
327			$trigger: $trigger,
328			$img    : '',
329			count   : 0
330		};
331
332		var init = function(){
333			set();
334			setButton();
335		};
336
337		var set = function(){
338			// set: Elment
339			PARAM.$img = o.type != 'text' && PARAM.$trigger.find('img');
340
341			// set: Fontsize
342			if($.cookie(o.cookieName)){
343				o.value = $.cookie(o.cookieName);
344			}
345			o.$wrap.addClass(o.value);
346			// set: Active
347			var i = 0, l = PARAM.$trigger.length;
348			for(; i < l; i++){
349				if(o.value == PARAM.$trigger[i].id){
350					PARAM.count = i;
351					PARAM.$trigger.eq(i).addClass(o.activeClass);
352					if(o.type != 'text'){
353						resetButton(i);
354					}
355					break;
356				}
357			}
358		};
359
360		var setButton = function(){
361			PARAM.$trigger.click(function(){
362				if(o.value == this.id) return false;
363				var num = PARAM.$trigger.index(this);
364				// set: Value
365				o.value = this.id;
366				o.$wrap.removeClass($.cookie(o.cookieName)).addClass(o.value);
367				$.cookie(o.cookieName, o.value, { expires: 30, path: '/'}); // 動作確認する
368				// set: Active
369				$(this).addClass(o.activeClass);
370				PARAM.$trigger.eq(PARAM.count).removeClass(o.activeClass);
371				if(o.type != 'text'){
372					resetButton(num, PARAM.count);
373				}
374				PARAM.count = num;
375				return false;
376			});
377		};
378
379		var resetButton = function(next, prev){
380	    Library.active(PARAM.$img.eq(next), {type: o.type});
381	    if(typeof prev == 'number'){
382	    	if(o.type == 'rover'){
383					Library.rollover({$rollover: PARAM.$img.eq(prev)});
384	    	} else if(o.type == 'alpha'){
385					Library.rollover({$alpha: PARAM.$img.eq(prev)});
386	    	}
387	    }
388		};
389
390		return init();
391	};
392
393
394	/**
395	 * flatHeight v0.2.3 - 2013.06.18
396	 */
397	Library.flatHeight = function($target, split, isObserve){
398		var $t = $target,
399				split = split || $t.length,
400				total = $t.length,
401				rest = total % split,
402				finalRow = total - rest,
403				isObserve = isObserve || true;
404
405		var init = function(){
406			setHeight();
407
408			if(isObserve && $.isDevice('pc')){
409				Library.observer(function(){
410					setHeight();
411				});
412			} else if($.isDevice('sd')) {
413				$(window).resize(function(){
414					setHeight();
415				});
416			}
417		};
418
419		var setHeight = function(){
420			$t.height('auto');
421
422			var maxHeight = rowCount = i = 0, l = total;
423			for(; i < l; i+=1){
424				var targetHeight = $t.eq(i).height();
425				maxHeight = maxHeight < targetHeight ? targetHeight: maxHeight;
426				if((i+1) % split == 0){
427					$t.slice(rowCount * split, (rowCount +=1) * split).height(maxHeight);
428					maxHeight = 0;
429				} else if(1 < rest && finalRow <= i){
430					maxHeight = maxHeight < targetHeight ? targetHeight: maxHeight;
431					if(i == l-1){
432						$t.slice(rowCount * split, l).height(maxHeight);
433					}
434				}
435			}
436		};
437
438		return init();
439	};
440
441
442	/*-----------------------------------------------------
443		Utility
444	-------------------------------------------------------*/
445
446	/**
447	 * getHash v0.1 - 2013.09.18
448	 * @return Array
449	 */
450	Library.getHash = function(){
451		var hash = window.location.hash;
452		if(hash){
453			return hash.split('#').slice(1, hash.length);
454		}
455	};
456
457	/**
458	 * hasHash v0.1 - 2013.07.10
459	 * @return boolean
460	 */
461	Library.hasHash = function(string){
462		var url = window.location;
463		if(url.href.indexOf('#') > -1){
464			var hash = url.hash;
465			if(!string){
466				return true;
467			} else if(hash){
468				var hashArray = hash.split('#'),
469						hashValue = string.replace(/#/, ''),
470						i = 1, l = hashArray.length;
471				for(; i < l; i+=1){
472					if(hashValue == hashArray[i]){
473						return true;
474					}
475				}
476			}
477		}
478		return false;
479	};
480
481	/**
482	 * observer v0.2.1 - 2013.07.26
483	 * 文字サイズの状態監視
484	 */
485	Library.observer = function(callback, timer){
486		var SELF = this.observer;
487
488		var PARAM = {
489			$ins   : '',
490			size   : 0,
491			timer  : timer || 500
492		};
493
494		var init = function(){
495			if(!SELF.callbacks){
496				SELF.callbacks = [];
497				set();
498				observer();
499			}
500			SELF.callbacks.push(callback);
501		};
502
503		var set = function(){
504			PARAM.$ins = $('<ins id="OBSERVER">M</ins>').css({
505				display: 'block',
506				visibility: 'hidden',
507				position: 'absolute',
508				top: 0,
509				zIndex: 0
510			}).appendTo('body');
511			PARAM.size = PARAM.$ins.height();
512		};
513
514		var observer = function(){
515			setInterval(function(){
516				if(PARAM.size != PARAM.$ins.height()){
517					PARAM.size = PARAM.$ins.height();
518					var i = 0, l = SELF.callbacks.length;
519					for(; i < l; i+=1){
520						SELF.callbacks[i]();
521					}
522				}
523			}, PARAM.timer);
524		};
525
526		return init();
527	};
528
529	/**
530	 * replaceImg v0.1 - 2013.07.11
531	 * src属性の書き換え
532	 * @return jQuery Object
533	 */
534 	Library.replaceImg = function($img, del, add){
535 		var $img = $img;
536 		return $img.attr('src', $img.attr('src').replace(del, add));
537 	};
538
539	/**
540	 * resizeStop v0.1.1 - 2013.08.23
541	 * リサイズストップイベント
542	 */
543	Library.resizeStop = function(callback, timer){
544		var timeId,
545				timer = timer || 200;
546		$(window).resize(function(){
547			clearTimeout(timeId);
548			timeId = setTimeout(function(){
549				callback();
550			}, timer);
551		});
552	};
553
554	/**
555	 * scrollStop v0.1 - 2013.08.23
556	 * スクロールストップイベント
557	 */
558	Library.scrollStop = function(callback, timer){
559		var timeId,
560				timer = timer || 200;
561		$(window).scroll(function(){
562			clearTimeout(timeId);
563			timeId = setTimeout(function(){
564				callback();
565			}, timer);
566		});
567	};
568
569	/**
570	 * shuffle v0.1.1 - 2013.08.23
571	 * 配列のシャッフル
572	 * @return array
573	 */
574	Library.shuffle = function(array){
575		var frag, j,
576				i = array.length,
577				r = Math.random();
578		while(i){
579	    j = ~~(r*i);
580	    frag = array[i-=1];
581	    array[i] = array[j];
582	    array[j] = frag;
583	  }
584	  return array;
585	};
586
587
588	/**
589	 * [queryHashMap リクエストパラメータの値を連想配列としてå
589–得します]
590	 * @return {[array]} [description]
591	 */
592	Library.queryHashMap = function(){
593		var vars = {},
594				keySearch,
595				key,
596				val,
597				param = location.search.substring(1).split('&'),
598				i = 0,
599				l = param.length;
600
601		for(; i < l; i += 1){
602			keySearch = param[i].search(/=/);
603			key = '';
604
605			if(keySearch != -1){
606				key = param[i].slice(0, keySearch);
607			}
608
609			val = param[i].slice(param[i].indexOf('=', 0) + 1);
610
611			if(key != ''){
612				vars[key] = decodeURI(val);
613			}
614		}
615
616		return vars;
617	};
618
619
620
621
622	/*-----------------------------------------------------
623		DOM READY
624	-------------------------------------------------------*/
625	$(function(){
626		if($.isDevice('pc')){
627			Library.rollover();
628		} else {
629			setTimeout(function(){ scrollTo(0, 1);}, 1);
630		}
631		Library.scroll($('a[href^=#]'));
632		//Library.scroll($('a[href^=#]'), {adjust: 80});
633	});
634
635}(jQuery));

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.