PageSourceSearch

https://annbee.or.jp/js/function.js

js annbee.or.jp collected 2026-10-08 03:28:14 UTC 21,681 bytes, 607 lines download raw bytes

1/* ================================================================= 
2 License : e-TRUST Inc.
3 File name : function.js
4 Style : function
5================================================================= */
6// アメブロ他SNSのRSS表示用
7     ;(function($){
8     $(function(){
9       $.get('./rss.php',function(data){
10         $('#rss').html(data);
11       })
12     })
13   })(jQuery);
14/* !smoothscroll ------------------------------------------------------------ */
15$(function(){
16  $('a[href^="#"]').click(function(){
17    var speed = 500;
18    var href= $(this).attr("href");
19    var target = $(href == "#" || href == "" ? 'html' : href);
20    var position = target.offset().top;
21    $("html, body").animate({scrollTop:position}, speed, "swing");
22    return false;
23  });
24});
25
26
27$(function(){
28/* ##### START JQUERY TEMPLATE ##################################### */
29
30rollover("#siteID a img",0.6,200); //除外するclass,id / opacity / speed
31//imgReplace();
32accordionPanel(".accBtn",".accOpen",300);
33spAutoTel(".tel-s","042-316-8523"); //telをwrapしている要素にclassをつける
34meanmenu("header #nav_global"); //
35objectFitImages();
36/* ##### START JQUERY ############################################## */
37// AIでSNS連動スライドの時はこれ
38$(".disnone").remove();
39$('.slide ul').slick({
40	autoplay:true,
41	dots: false,
42	prevArrow: '<a class="slick-prev2" href="#"><i class="fa fa-chevron-left" aria-hidden="true"></i></a>',
43	nextArrow: '<a class="slick-next2" href="#"><i class="fa fa-chevron-right" aria-hidden="true"></i></a>',
44	speed: 500,
45	slidesToShow: 3,
46	slidesToScroll: 1
47});
48
49// コンテンツにフェイド的な動き(上下左右流したいものにslide-top,bottom,right,leftつけるだけ)※それをPCのみ
50
51if(!navigator.userAgent.match(/(iPhone|iPad|iPod|Android)/)){
52$("#contents").fadeThis({
53	speed: 1000,
54	reverse: false,
55	distance: 50,
56	offset: -50
57});
58}
59
60$(".disnone").remove();
61$('.slide2 ul').slick({
62	autoplay:true,
63	dots: false,
64	prevArrow: '<a class="slick-prev2" href="#"><i class="fa fa-chevron-left" aria-hidden="true"></i></a>',
65	nextArrow: '<a class="slick-next2" href="#"><i class="fa fa-chevron-right" aria-hidden="true"></i></a>',
66	speed: 500,
67	slidesToShow: 6,
68	slidesToScroll: 1,
69		responsive: [
70	{
71	breakpoint: 800,
72	settings: {
73	slidesToShow: 3
74	}
75	}
76	]
77});
78
79// AIでSNS連動スライドの時はこれ。画像をul,liに書き換えてくれるjs
80$('.sns_list').replaceWith(function() {
81 var this_class = $(this).attr("class") ? ' class="' +$(this).attr("class")+ '"' : '';
82 $(this).replaceWith('<ul'+this_class+'>'+$(this).html()+'</ul>');
83});
84
85$('.sns_list > div').replaceWith(function() {
86 var this_class = $(this).attr("class") ? ' class="' +$(this).attr("class")+ '"' : '';
87 $(this).replaceWith('<li'+this_class+'>'+$(this).html()+'</li>');
88});
89
90$('.sns_list').slick({
91	autoplay:true,
92	dots: false,
93	prevArrow: '<a class="slick-prev2" href="#"><i class="fa fa-chevron-left" aria-hidden="true"></i></a>',
94	nextArrow: '<a class="slick-next2" href="#"><i class="fa fa-chevron-right" aria-hidden="true"></i></a>',
95	speed: 500,
96	slidesToShow: 6,
97	slidesToScroll: 1,
98		responsive: [
99	{
100	breakpoint: 800,
101	settings: {
102	slidesToShow: 3
103	}
104	}
105	]
106});
107// AIでSNS連動スライドの時はこれ
108
109/* mainArea */
110$(function(){
111	$('#slider').slick({
112	autoplay:true,
113	autoplaySpeed:2000,
114	speed:3000,
115	pauseOnHover:false,
116	fade:true
117	});
118});
119
120/* tile */
121$(function(){
122	var minWidth = 468;
123	if (minWidth <= $(this).width()) {
124		$('.home_td .box').tile(2);
125		$(window).load(function() {
126			$('.home_td .box').tile(2);
127		});
128	}
129	$(window).resize(function(){
130		if (minWidth <= $(this).width()) {
131			$('.home_td .box').tile(2);
132		}
133		else {
134			$('.home_td .box').removeAttr('style');
135		}
136	});
137});
138
139/* 開閉パネル */
140$("div.menu").hide();
141$("div.category").click(function(){
142	$("div.menu").slideUp();
143	$("div.category").removeClass("open");
144	if($("+div",this).css("display")=="none"){
145		$("+div",this).slideDown();
146		$(this).addClass("open");
147	}
148});
149if($("#box").length){
150	$("#box").jScrollPane();
151};
152
153//ヘッダーh1変更
154if($(".h1txt").length){
155	var h1Txt = $(".h1txt").text();
156	$("h1").text(h1Txt);
157	$(".h1txt").remove();
158}
159//ぱんくずテキスト変更
160if($(".pankuzu-now").length){
161	var hpTxt = $(".pankuzu-now").text();
162	$("#pankuzu-now").text(hpTxt);
163	$(".pankuzu-now").remove();
164}
165//下層のメインビジュアル置換
166var lk = $(".local-keyvisual-bg");
167$("#local-keyvisual-bg").replaceWith(lk);
168
169$(function() {
170	var tr1st = [];
171//table trの1列目(一般的にはthにあたる部分)
172	$(".tblcustom tr:first-child").each(function(i) {
173		tr1st[i] = [];
174		$("td", this).each(function(i) {
175				tr1st[i] = $(this).text();
176		});
177	});
178
179	var trList = $(".tblcustom tr");
180	for (var i = 0; i < trList.length; i++) {
181		var tdList = trList.eq(i).children();
182		for (var j = 0; j < tdList.length; j++) {
183			var td = tdList.eq(j);
184			td.wrapInner('<div></div>')
185			td.attr('data-th', tr1st[j]);
186		};
187	};
188});
189
190
191/* !scroll スクロール ------------------------------------------------------------ */
192$(function(){
193  $(window).load(function(){
194     $(".scroll").mCustomScrollbar();
195  });
196});
197
198/* !dropdownmenu ------------------------------------------------------------ */
199$("#nav_global ul li ul").hide();
200$("#nav_global ul li").hover(function(){
201	$("ul:not(:animated)", this).slideDown();
202	},function(){$("ul",this).slideUp();
203});
204
205/* !bxslider ------------------------------------------------------------ */
206setTimeout(function(){
207	$('.bxslider').bxSlider({
208	 mode: 'horizontal', //'horizontal', 'vertical', 'fade'
209	 speed: 500,
210	 auto: false,
211	 controls: true,
212	 pager: false,
213	 easing: '' //'linear', 'ease', 'ease-in', 'ease-out', 'ease-in-out', 'cubic-bezier(n,n,n,n)'
214	});
215}, 0);
216
217/* !fancyBox ---------------------------------------------------------------- */
218$('.fancybox').each(function(i){
219	$(".fancybox a[href$='.jpg'],.fancybox a[href$='.jpeg'],.fancybox a[href$='.png'],.fancybox a[href$='.gif'],.fancybox a[href$='.JPG'],.fancybox a[href$='.JPEG'],.fancybox a[href$='.PNG'],.fancybox a[href$='.GIF']").each(function(){
220		$(this).attr({"rel":"grp"+i,"title":$('img',$(this)).attr("alt")});
221	}).fancybox({
222		transitionIn : 'elastic',  //'elastic', 'fade' or 'none'
223		transitionOut : 'elastic',  //'elastic', 'fade' or 'none'
224		centerOnScroll : true
225	});
226});
227
228$('.fancybox2').fancybox({
229	titlePosition		: 'inside',
230	transitionIn		: 'none',
231	transitionOut		: 'none',
232});
233
234/* !SP ---------------------------------------------------------------- */
235$('a img').bind('touchstart', function() {
236  $(this).attr('src', $(this).attr('src').replace('_off', '_on'));
237});
238$('a img').bind('touchend', function() {
239  $(this).attr('src', $(this).attr('src').replace('_on', '_off'));
240});
241
242
243/* ##### END JQUERY ################################################ */
244});
245
246
247
248/* !meanmenu ------------------------------------------------------------ */
249var meanmenu = function(elemClass){
250	$(elemClass).meanmenu({
251	 meanMenuClose: "x", // クローズボタン
252	 meanMenuCloseSize: "18px", // クローズボタンのフォントサイズ
253	 meanMenuOpen: "<span /><span /><span />", // 通常ボタン
254	 meanRevealPosition: "right", // 表示位置
255	 meanRevealColour: "", // 背景色
256	 meanScreenWidth: "768", // ブレイクポイント)
257	});
258};
259
260/* !rollover ---------------------------------------------------------------- */
261var rollover = function(exclusion,opacity,speed){
262	$("a img").not(exclusion).each(function(){
263		var img = $(this);
264		if( $(this).attr("src").match("_off")){
265			$(this).hover(function(){
266				$(img).attr("src",$(img).attr("src").replace("_off","_on"));
267			},function(){
268				$(img).attr("src",$(img).attr("src").replace("_on","_off"));
269			});
270		} else {
271			$(this).hover(function(){
272				$(img).stop().animate({"opacity":opacity},speed);
273			},function(){
274				$(img).stop().animate({"opacity":1},speed);
275			});
276		}
277	});
278};
279
280/* !img replace ------------------------------------------------------------ */
281var imgReplace = function(){
282	var $setElem = $('img'),
283	replaceWidth = 468;
284	$setElem.each(function(){
285		var $this = $(this);
286		function imgSize(){
287			var windowWidth = parseInt(window.innerWidth||document.documentElement.clientWidth);
288			if(windowWidth >= replaceWidth) {
289				$this.attr('src',$this.attr('src').replace('_sp','_pc'));
290			} else if(windowWidth < replaceWidth) {
291				$this.attr('src',$this.attr('src').replace('_pc','_sp'));
292			}
293		}
294		$(window).resize(function(){imgSize();});
295		imgSize();
296	});
297};
298
299/* !accordionPanel ------------------------------------------------------------ */
300var accordionPanel = function(btnClass,openClass,speed){
301		$(btnClass).next(openClass).hide().end().not(":animated").toggle(
302		function(){$(this).next(openClass).slideDown(speed);},
303		function(){$(this).next(openClass).slideUp(speed);}
304	);
305};
306
307/* !sp auto tel-link ------------------------------------------------------------ */
308var spAutoTel = function(elemClass,telNumber){
309 var device = navigator.userAgent;
310 if((device.indexOf('iPhone') > 0 && device.indexOf('iPad') == -1) || device.indexOf('iPod') > 0 || device.indexOf('Android') > 0){
311 	$(elemClass).wrapInner("<a href=tel:" + telNumber + "></a>");
312 }
313};
314
315/* !isUA -------------------------------------------------------------------- */
316var isUA = (function(){
317	var ua = navigator.userAgent.toLowerCase();
318	indexOfKey = function(key){ return (ua.indexOf(key) != -1)? true: false;}
319	var o = {};
320	o.ie      = function(){ return indexOfKey("msie"); }
321	o.fx      = function(){ return indexOfKey("firefox"); }
322	o.chrome  = function(){ return indexOfKey("chrome"); }
323	o.opera   = function(){ return indexOfKey("opera"); }
324	o.android = function(){ return indexOfKey("android"); }
325	o.ipad    = function(){ return indexOfKey("ipad"); }
326	o.ipod    = function(){ return indexOfKey("ipod"); }
327	o.iphone  = function(){ return indexOfKey("iphone"); }
328	return o;
329})();
330
331/* ##### START JQUERY FN EXTEND ##### */
332$.fn.extend({
333bxiSlider : function(options){
334	var def = {
335		speed : 3000,delay : 2500,type : 'slide', /* slide or fade */
336		width : 'auto', /* inherit parent element */height : 'auto', /* inherit parent element */
337		ease : "easeInOutExpo"
338	};
339	var o = $.extend(def,options);
340	return this.each(function(i){
341		var UL=$(this),LI=UL.children();
342		UL.css({"position":"relative","width":o.width,"height":o.height,"overflow":"hidden"});
343		if(o.type == 'slide'){
344			LI.each(function(n){
345				$(this).css({"position":"absolute","z-index":500-n});
346			});
347			var sL = LI.length,f = 0;
348			(function slideAnime(){
349				(f==(sL-1))?(
350					LI.eq(f).delay(o.delay).animate({"left":o.width*-1},o.speed,o.ease),
351					LI.eq(0).css("left",o.width).delay(o.delay).animate({"left":0},o.speed,o.ease,slideAnime),
352					f = 0
353				):(
354					LI.eq(f+1).css("left",o.width).delay(o.delay).animate({"left":0},o.speed,o.ease),
355					LI.eq(f).delay(o.delay).animate({"left":o.width*-1},o.speed,o.ease,slideAnime),
356					f += 1
357				);
358			})();
359		}else{
360			LI.css({"position":"absolute"}).filter(":gt(0)").hide();
361			(function loop(){
362				var si = setInterval(function(){
363					clearInterval(si);
364					LI.filter(':first-child').fadeOut(o.speed).next().fadeIn(o.speed,loop).end().appendTo(UL);
365				},o.delay);
366			})();
367		};
368	});
369}
370});
371$.easing['jswing']=jQuery.easing['swing'];$.extend(jQuery.easing,{def:'easeOutQuad',swing:function(x,t,b,c,d){return jQuery.easing[jQuery.easing.def](x,t,b,c,d);},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b;},easeOutQuad:function(x,t,b,c,d){return -c*(t/=d)*(t-2)+b;},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return -c/2*((--t)*(t-2)-1)+b;},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b;},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b;},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b;},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutQuart:function(x,t,b,c,d){return -c*((t=t/d-1)*t*t*t-1)+b;},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return -c/2*((t-=2)*t*t*t-2)+b;},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b;},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b;},easeInSine:function(x,t,b,c,d){return -c*Math.cos(t/d*(Math.PI/2))+c+b;},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b;},easeInOutSine:function(x,t,b,c,d){return -c/2*(Math.cos(Math.PI*t/d)-1)+b;},easeInExpo:function(x,t,b,c,d){return (t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOutExpo:function(x,t,b,c,d){return (t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},easeInOutExpo:function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;},easeInCirc:function(x,t,b,c,d){return -c*(Math.sqrt(1-(t/=d)*t)-1)+b;},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b;},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1)return -c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b;},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;}else var s=p/(2*Math.PI)*Math.asin(c/a);return -(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;},easeOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;}else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;},easeInOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4;}else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return -.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;},easeInBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b;},easeOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;}
371,easeInOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;},easeInBounce:function(x,t,b,c,d){return c-jQuery.easing.easeOutBounce(x,d-t,0,c,d)+b;},easeOutBounce:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}else {return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;}},easeInOutBounce:function(x,t,b,c,d){if(t<d/2)return jQuery.easing.easeInBounce(x,t*2,0,c,d)*.5+b;return jQuery.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b;}});
372/* ##### END JQUERY EXTEND ##### */
373
374/*! npm.im/object-fit-images 3.2.3 */
375var objectFitImages = (function () {
376'use strict';
377
378var OFI = 'bfred-it:object-fit-images';
379var propRegex = /(object-fit|object-position)\s*:\s*([-\w\s%]+)/g;
380var testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();
381var supportsObjectFit = 'object-fit' in testImg.style;
382var supportsObjectPosition = 'object-position' in testImg.style;
383var supportsOFI = 'background-size' in testImg.style;
384var supportsCurrentSrc = typeof testImg.currentSrc === 'string';
385var nativeGetAttribute = testImg.getAttribute;
386var nativeSetAttribute = testImg.setAttribute;
387var autoModeEnabled = false;
388
389function createPlaceholder(w, h) {
390	return ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='" + w + "' height='" + h + "'%3E%3C/svg%3E");
391}
392
393function polyfillCurrentSrc(el) {
394	if (el.srcset && !supportsCurrentSrc && window.picturefill) {
395		var pf = window.picturefill._;
396		// parse srcset with picturefill where currentSrc isn't available
397		if (!el[pf.ns] || !el[pf.ns].evaled) {
398			// force synchronous srcset parsing
399			pf.fillImg(el, {reselect: true});
400		}
401
402		if (!el[pf.ns].curSrc) {
403			// force picturefill to parse srcset
404			el[pf.ns].supported = false;
405			pf.fillImg(el, {reselect: true});
406		}
407
408		// retrieve parsed currentSrc, if any
409		el.currentSrc = el[pf.ns].curSrc || el.src;
410	}
411}
412
413function getStyle(el) {
414	var style = getComputedStyle(el).fontFamily;
415	var parsed;
416	var props = {};
417	while ((parsed = propRegex.exec(style)) !== null) {
418		props[parsed[1]] = parsed[2];
419	}
420	return props;
421}
422
423function setPlaceholder(img, width, height) {
424	// Default: fill width, no height
425	var placeholder = createPlaceholder(width || 1, height || 0);
426
427	// Only set placeholder if it's different
428	if (nativeGetAttribute.call(img, 'src') !== placeholder) {
429		nativeSetAttribute.call(img, 'src', placeholder);
430	}
431}
432
433function onImageReady(img, callback) {
434	// naturalWidth is only available when the image headers are loaded,
435	// this loop will poll it every 100ms.
436	if (img.naturalWidth) {
437		callback(img);
438	} else {
439		setTimeout(onImageReady, 100, img, callback);
440	}
441}
442
443function fixOne(el) {
444	var style = getStyle(el);
445	var ofi = el[OFI];
446	style['object-fit'] = style['object-fit'] || 'fill'; // default value
447
448	// Avoid running where unnecessary, unless OFI had already done its deed
449	if (!ofi.img) {
450		// fill is the default behavior so no action is necessary
451		if (style['object-fit'] === 'fill') {
452			return;
453		}
454
455		// Where object-fit is supported and object-position isn't (Safari < 10)
456		if (
457			!ofi.skipTest && // unless user wants to apply regardless of browser support
458			supportsObjectFit && // if browser already supports object-fit
459			!style['object-position'] // unless object-position is used
460		) {
461			return;
462		}
463	}
464
465	// keep a clone in memory while resetting the original to a blank
466	if (!ofi.img) {
467		ofi.img = new Image(el.width, el.height);
468		ofi.img.srcset = nativeGetAttribute.call(el, "data-ofi-srcset") || el.srcset;
469		ofi.img.src = nativeGetAttribute.call(el, "data-ofi-src") || el.src;
470
471		// preserve for any future cloneNode calls
472		// https://github.com/bfred-it/object-fit-images/issues/53
473		nativeSetAttribute.call(el, "data-ofi-src", el.src);
474		if (el.srcset) {
475			nativeSetAttribute.call(el, "data-ofi-srcset", el.srcset);
476		}
477
478		setPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);
479
480		// remove srcset because it overrides src
481		if (el.srcset) {
482			el.srcset = '';
483		}
484		try {
485			keepSrcUsable(el);
486		} catch (err) {
487			if (window.console) {
488				console.warn('https://bit.ly/ofi-old-browser');
489			}
490		}
491	}
492
493	polyfillCurrentSrc(ofi.img);
494
495	el.style.backgroundImage = "url(\"" + ((ofi.img.currentSrc || ofi.img.src).replace(/"/g, '\\"')) + "\")";
496	el.style.backgroundPosition = style['object-position'] || 'center';
497	el.style.backgroundRepeat = 'no-repeat';
498	el.style.backgroundOrigin = 'content-box';
499
500	if (/scale-down/.test(style['object-fit'])) {
501		onImageReady(ofi.img, function () {
vendor: 1,782 bytes, lines 502-562
502			if (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {
503				el.style.backgroundSize = 'contain';
504			} else {
505				el.style.backgroundSize = 'auto';
506			}
507		});
508	} else {
509		el.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');
510	}
511
512	onImageReady(ofi.img, function (img) {
513		setPlaceholder(el, img.naturalWidth, img.naturalHeight);
514	});
515}
516
517function keepSrcUsable(el) {
518	var descriptors = {
519		get: function get(prop) {
520			return el[OFI].img[prop ? prop : 'src'];
521		},
522		set: function set(value, prop) {
523			el[OFI].img[prop ? prop : 'src'] = value;
524			nativeSetAttribute.call(el, ("data-ofi-" + prop), value); // preserve for any future cloneNode
525			fixOne(el);
526			return value;
527		}
528	};
529	Object.defineProperty(el, 'src', descriptors);
530	Object.defineProperty(el, 'currentSrc', {
531		get: function () { return descriptors.get('currentSrc'); }
532	});
533	Object.defineProperty(el, 'srcset', {
534		get: function () { return descriptors.get('srcset'); },
535		set: function (ss) { return descriptors.set(ss, 'srcset'); }
536	});
537}
538
539function hijackAttributes() {
540	function getOfiImageMaybe(el, name) {
541		return el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;
542	}
543	if (!supportsObjectPosition) {
544		HTMLImageElement.prototype.getAttribute = function (name) {
545			return nativeGetAttribute.call(getOfiImageMaybe(this, name), name);
546		};
547
548		HTMLImageElement.prototype.setAttribute = function (name, value) {
549			return nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));
550		};
551	}
552}
553
554function fix(imgs, opts) {
555	var startAutoMode = !autoModeEnabled && !imgs;
556	opts = opts || {};
557	imgs = imgs || 'img';
558
559	if ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {
560		return false;
561	}
562
vendor: 1,007 bytes, lines 563-607
563	// use imgs as a selector or just select all images
564	if (imgs === 'img') {
565		imgs = document.getElementsByTagName('img');
566	} else if (typeof imgs === 'string') {
567		imgs = document.querySelectorAll(imgs);
568	} else if (!('length' in imgs)) {
569		imgs = [imgs];
570	}
571
572	// apply fix to all
573	for (var i = 0; i < imgs.length; i++) {
574		imgs[i][OFI] = imgs[i][OFI] || {
575			skipTest: opts.skipTest
576		};
577		fixOne(imgs[i]);
578	}
579
580	if (startAutoMode) {
581		document.body.addEventListener('load', function (e) {
582			if (e.target.tagName === 'IMG') {
583				fix(e.target, {
584					skipTest: opts.skipTest
585				});
586			}
587		}, true);
588		autoModeEnabled = true;
589		imgs = 'img'; // reset to a generic selector for watchMQ
590	}
591
592	// if requested, watch media queries for object-fit change
593	if (opts.watchMQ) {
594		window.addEventListener('resize', fix.bind(null, imgs, {
595			skipTest: opts.skipTest
596		}));
597	}
598}
599
600fix.supportsObjectFit = supportsObjectFit;
601fix.supportsObjectPosition = supportsObjectPosition;
602
603hijackAttributes();
604
605return fix;
606
607}());

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.