PageSourceSearch

https://www.shop-onoya.com/js/usr/user_sb.js?1237

js shop-onoya.com collected 2026-10-09 00:19:28 UTC 13,931 bytes, 377 lines download raw bytes

1var ecblib = ecblib || {};
2ecblib.customize = ecblib.customize || {};
3ecblib.customize.user_sb = ecblib.customize.user_sb || {};
4
5jQuery(function () {
6	var _user_sb = ecblib.customize.user_sb;
7
8	//-- トップページへ戻る初期値
9	jQuery('#footer_pagetop').hide();
10
11	//--- スムーススクロール
12	jQuery('a[href="#header"]').click(function () {
13		var speed = 500;
14		var headerH;
15		if (jQuery('#header').height() > 200) {
16			headerH = (jQuery('#header').height() + jQuery('#header_pickup_banner').height()) + 30;
17		} else {
18			headerH = jQuery('#header').height();
19		};
20		var href = jQuery(this).attr("href");
21		var target = jQuery(href == "#" || href == "" ? 'html' : href);
22		var position = jQuery(window).scrollTop()-target.offset().top;
23		jQuery('body,html').animate({ scrollTop: position }, speed, 'swing');
24		return false;
25	});
26	var scrollpos;
27	jQuery('#header_menu').click(function(){
28		jQuery("#search_view").fadeOut(200);
29		jQuery("#header_search").removeClass("active");
30		jQuery('#search_view').removeClass('current');
31		
32		if (jQuery(this).hasClass('active')){
33			jQuery('body').removeClass('body-fixed').css({'top': 0});
34			window.scrollTo(0,scrollpos);
35			jQuery("#menu_view").fadeOut(200);
36			jQuery(this).removeClass("active");
37			jQuery('#menu_view').removeClass('current');
38		} else {
39			scrollpos = jQuery(window).scrollTop();
40			jQuery('body').addClass('body-fixed').css({'top': -scrollpos});
41			jQuery("#menu_view").fadeIn(300);
42			jQuery(this).addClass("active");
43			jQuery('#menu_view').addClass('current');
44		}
45	});
46	jQuery('#header_search').click(function(){
47		jQuery("#menu_view").fadeOut(200);
48		jQuery("#header_menu").removeClass("active");
49		jQuery('#menu_view').removeClass('current');
50		
51		if (jQuery(this).hasClass('active')){
52			jQuery('body').removeClass('body-fixed').css({'top': 0});
53			window.scrollTo(0,scrollpos);
54			jQuery("#search_view").fadeOut(200);
55			jQuery(this).removeClass("active");
56			jQuery('#search_view').removeClass('current');
57		} else {
58			scrollpos = jQuery(window).scrollTop();
59			jQuery('body').addClass('body-fixed').css({'top': -scrollpos});
60			jQuery("#search_view").fadeIn(300);
61			jQuery(this).addClass("active");
62			jQuery('#search_view').addClass('current');
63		}
64	});
65	jQuery('#search_view .search_bg ,#search_view .block-header-search--close-button').click(function(){
66		jQuery('body').removeClass('body-fixed').css({'top': 0});
67		window.scrollTo(0,scrollpos);
68		jQuery("#search_view").fadeOut(200);
69		jQuery("#header_search").removeClass("active");
70		jQuery('#search_view').removeClass('current');
71	});
72	
73	jQuery('#brand_header_menu').click(function(){
74		jQuery("#search_view").fadeOut(200);
75		jQuery("#brand_header_search").removeClass("active");
76		jQuery('#search_view').removeClass('current');
77		
78		if (jQuery(this).hasClass('active')){
79			jQuery('body').removeClass('body-fixed').css({'top': 0});
80			window.scrollTo(0,scrollpos);
81			jQuery("#menu_view").fadeOut(200);
82			jQuery(this).removeClass("active");
83			jQuery('#menu_view').removeClass('current');
84		} else {
85			scrollpos = jQuery(window).scrollTop();
86			jQuery('body').addClass('body-fixed').css({'top': -scrollpos});
87			jQuery("#menu_view").fadeIn(300);
88			jQuery(this).addClass("active");
89			jQuery('#menu_view').addClass('current');
90		}
91	});
92	jQuery('#brand_header_search').click(function(){
93		jQuery("#menu_view").fadeOut(200);
94		jQuery("#brand_header_menu").removeClass("active");
95		jQuery('#menu_view').removeClass('current');
96		
97		if (jQuery(this).hasClass('active')){
98			jQuery('body').removeClass('body-fixed').css({'top': 0});
99			window.scrollTo(0,scrollpos);
100			jQuery("#search_view").fadeOut(200);
101			jQuery(this).removeClass("active");
102			jQuery('#search_view').removeClass('current');
103		} else {
104			scrollpos = jQuery(window).scrollTop();
105			jQuery('body').addClass('body-fixed').css({'top': -scrollpos});
106			jQuery("#search_view").fadeIn(300);
107			jQuery(this).addClass("active");
108			jQuery('#search_view').addClass('current');
109		}
110	});
111	jQuery('#search_view .search_bg ,#search_view .block-header-search--close-button').click(function(){
112		jQuery('body').removeClass('body-fixed').css({'top': 0});
113		window.scrollTo(0,scrollpos);
114		jQuery("#search_view").fadeOut(200);
115		jQuery("#brand_header_search").removeClass("active");
116		jQuery('#search_view').removeClass('current');
117	});
118
119	/**
120	 * ハンバーガーメニューを非表示にする
121	 */
122	_user_sb.hideHumbergerMenu = function () {
123		jQuery('#menu_view').fadeOut(200);
124		jQuery('#search_view').fadeOut(200);
125
126		document.querySelector('#menu_view')?.classList?.remove('current');
127		document.querySelector('#search_view')?.classList?.remove('current');
128		document.querySelector('#header_menu')?.classList?.remove('active');
129		document.querySelector('#header_search')?.classList?.remove('active');
130		document.querySelector('#brand_header_menu')?.classList?.remove('active');
131		document.querySelector('#brand_header_search')?.classList?.remove('active');
132		document.querySelector('body')?.classList?.remove('body-fixed');
133	};
134
135
136	if (ecblib.sys.isModeResponsiveView()) {
137		ecblib.sys.addMatchMediaEventListener(function (mediaQueryList) {
138			if (mediaQueryList.matches) {
139				ecblib.customize.user_sb.hideHumbergerMenu();
140			}
141		});
142	}
143
144	//商品一覧のスタイル調整
145	const setScrollbarWidthProperty = function () {
146		let bodyScrollWidth = window.innerWidth - document.body.clientWidth;
147		document.documentElement.style.setProperty('--usr-scrollbar-width', `${bodyScrollWidth}px`);
148	};
149	setScrollbarWidthProperty();
150	window.addEventListener('resize', setScrollbarWidthProperty);
151	
152	jQuery('.js-style-items, .js-sort-items, #block_of_filter').wrapAll('<div class="block-goods-list--params"></div>');
153	jQuery('.js-style-items select').each(function() {
154		jQuery(this).after('<ul class="block-style--list"></ul>');
155		jQuery(this).find('option').each(function() {
156			if(jQuery(this).val() != '') {
157				jQuery('.js-style-items ul.block-style--list').append('<li class="block-style--list-item"><a href="' + jQuery(this).val() + '">' + jQuery(this).text() + '</a></li>');
158			} else {
159				jQuery('.js-style-items ul.block-style--list').append('<li class="block-style--list-item"><span class="checked">' + jQuery(this).text() + '</span></li>');
160			}
161		});
162	});
163	jQuery('.js-style-items .block-style--element').after('<div class="block-style--element-bg"></div>');
164	jQuery('body').on('click', '.js-style-items h2', function() {
165		jQuery(this).closest('.js-style-items').find('.block-style--element, .block-style--element-bg').addClass('is-show');
166	});
167	jQuery('body').on('click', '.js-style-items .block-style--element-bg', function() {
168		jQuery(this).closest('.js-style-items').find('.block-style--element').removeClass('is-show');
169		jQuery(this).removeClass('is-show');
170	});
171	jQuery('.js-sort-items select').each(function() {
172		jQuery(this).after('<ul class="block-sort--list"></ul>');
173		jQuery(this).find('option').each(function() {
174			if(jQuery(this).val() != '') {
175				jQuery('.js-sort-items ul.block-sort--list').append('<li class="block-sort--list-item"><a href="' + jQuery(this).val() + '">' + jQuery(this).text() + '</a></li>');
176			} else {
177				jQuery('.js-sort-items ul.block-sort--list').append('<li class="block-sort--list-item"><span class="checked">' + jQuery(this).text() + '</span></li>');
178			}
179		});
180	});
181	jQuery('.js-sort-items .block-sort--element').after('<div class="block-sort--element-bg"></div>');
182	jQuery('body').on('click', '.js-sort-items h2', function() {
183		jQuery(this).closest('.js-sort-items').find('.block-sort--element, .block-sort--element-bg').addClass('is-show');
184	});
185	jQuery('body').on('click', '.js-sort-items .block-sort--element-bg', function() {
186		jQuery(this).closest('.js-sort-items').find('.block-sort--element').removeClass('is-show');
187		jQuery(this).removeClass('is-show');
188	});
189	jQuery('body').on('click', '#frmFilterList .block-filter--clear-btn', function() {
190		let $parent_filter_frame = jQuery(this).closest('#frmFilterList');
191		$parent_filter_frame.find('input[type="checkbox"]').prop('checked', false);
192		$parent_filter_frame.find('input[type="checkbox"]').trigger('change');
193		$parent_filter_frame.find('select').val('');
194		$parent_filter_frame.find('input[name^="filtercode"][type="hidden"]').remove();
195		$parent_filter_frame.find('.block-filter--treeitem-selected').removeClass('block-filter--treeitem-selected');
196		return false;
197	});
198
199	jQuery('body').on('change', '.block-filter--option-items label.checkbox input[type=checkbox]', function() {
200		if(jQuery(this).prop('checked')){
201			jQuery(this).closest('label.checkbox').addClass('checked');
202		} else {
203			jQuery(this).closest('label.checkbox').removeClass('checked');
204		}
205	});
206	jQuery('.block-filter--option-items label.checkbox input[type=checkbox]').trigger('change');
207
208
209	// ハンバーガー内 追加の閉じるボタン
210	jQuery(function () {
211	jQuery('#menu_view').on('click', '.spmenu__close', function (e) {
212		e.preventDefault();
213		ecblib.customize.user_sb.hideHumbergerMenu();
214	});
215	});
216
217
218	/* お知らせ バー */
219	(function($){
220	var _user_sb = ecblib.customize.user_sb;
221
222	_user_sb.initNoticebarSwiper = function(){
223		var $el = $('.js-noticeSwiper');
224		if(!$el.length) return false;
225		if(typeof window.Swiper === 'undefined') return false;
226		if($el.data('noticeSwiperInited')) return true;
227
228		var slideCount = $el.find('.swiper-slide').length;
229		if(slideCount <= 1){
230		// ★ 1件しか無い(またはまだ注入前)可能性があるので、ここでは inited にしない
231		// return false にして「後で再挑戦」できるようにする
232		return false;
233		}
234
235		// PC判定(マウス環境)
236		var isPointerFine = window.matchMedia('(hover: hover) and (pointer: fine)').matches;
237
238		var swiper = new Swiper($el[0], {
239		loop: true,
240		direction: 'horizontal',
241		slidesPerView: 1,
242		speed: 550,
243		autoplay: {
244			delay: 5000,
245			disableOnInteraction: false
246		},
247
248		// PCもSPもドラッグ/フリックOK
249		allowTouchMove: true,
250		simulateTouch: true,
251
252		// ★小さい動きで誤作動しない
253		threshold: 8,
254
255		// ★PCで「ドラッグ失敗 → 追従」になりやすい原因(リンク/選択)を抑止
256		touchStartPreventDefault: true,
257		touchStartForcePreventDefault: isPointerFine, // Swiper対応版なら効く(未対応でも害なし)
258
259		// ★クリックは生かす(リンクを踏めるように)
260		preventClicks: false,
261		preventClicksPropagation: false,
262
263		watchOverflow: true
264		});
265
266		// ★リンクのネイティブドラッグを殺す(これが無いとPCで事故りやすい)
267		$el.find('a').attr('draggable', 'false');
268
269		$el.data('noticeSwiperInited', true);
270		$el.data('noticeSwiperInstance', swiper);
271		return true;
272	};
273
274	// ★ DOM後出しに負けないように、短時間リトライ
275	function bootNoticebar(){
276		var tries = 0;
277		var maxTries = 120;   // 120 * 50ms = 6秒
278		var timer = setInterval(function(){
279		tries++;
280
281		var ok = _user_sb.initNoticebarSwiper();
282		if(ok){
283			clearInterval(timer);
284			return;
285		}
286
287		if(tries >= maxTries){
288			clearInterval(timer);
289		}
290		}, 50);
291	}
292
293	$(function(){
294		bootNoticebar();
295	});
296
297	// ★ 保険:load後にももう一回
298	$(window).on('load', function(){
299		bootNoticebar();
300	});
301
302	})(jQuery);
303
304
305	
306});	
307
308
309
310(function(){
311  function replaceMailNews(root){
312    var walker = document.createTreeWalker(
313      root,
314      NodeFilter.SHOW_TEXT,
315      null
316    );
317    var node;
318    while(node = walker.nextNode()){
319      if(node.nodeValue.indexOf('メールニュース') !== -1){
320        node.nodeValue = node.nodeValue.replace(/メールニュース/g, 'メールマガジン');
321      }
322    }
323  }
324
325  var observer = new MutationObserver(function(mutations){
326    mutations.forEach(function(mutation){
327      mutation.addedNodes.forEach(function(node){
328        if(node.nodeType === 3){
329          if(node.nodeValue.indexOf('メールニュース') !== -1){
330            node.nodeValue = node.nodeValue.replace(/メールニュース/g, 'メールマガジン');
331          }
332        }
333        if(node.nodeType === 1){
334          replaceMailNews(node);
335        }
336      });
337    });
338  });
339  observer.observe(document.documentElement, {
340    childList: true,
341    subtree: true
342  });
343
344})();
345
346
347
348
349jQuery(window).on('scroll resize', function () {
350	var _user_sb = ecblib.customize.user_sb;
351
352	var scrollHeight = jQuery(document).height();
353	var scrollPosition = jQuery(window).height() + jQuery(window).scrollTop();
354	var footHeight = jQuery('footer').height();
355
356	if (jQuery(this).scrollTop() > 120) {
357		jQuery('#footer_pagetop').show();
358	} else if (jQuery(this).scrollTop() < 80) {
359		jQuery('#footer_pagetop').hide();
360	}
361
362	if (scrollHeight - scrollPosition <= footHeight) {
363		jQuery('#footer_pagetop').css({ 'opacity': '0.2' });
364	} else {
365		jQuery('#footer_pagetop').css({ 'opacity': '1' });
366	}
367
368});
369
370window.lazySizesConfig = window.lazySizesConfig || {};
371/* lazysizesの設定の変更はここから記述してください
372  ・lazySizesConfig.expandは、大きな画像を早めに読み込み開å
372§‹ã•せたい場合などに使用してください
373    正の値を指定すると読み込み開始スクロール位置が上に(早く)なります
374    負の値を設定すると読み込み開始スクロール位置が下に(遅く)なります
375    ※lazySizesConfig.expandを指定しない場合、画像の読み込み状況やブラウザのアイドリング状況に応じて動的に最適化されますが
376      指定すると動的な最適化が無効になることに注意してください
377*/

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.