PageSourceSearch

https://www.regal.co.jp/cms/js/common.js

js regal.co.jp collected 2026-10-02 02:27:39 UTC 13,352 bytes, 428 lines download raw bytes

1/* ---------------------
2	 共通
3-------------------- */
4jQuery(function() {
5
6    /* ナビゲーション */
7    jQuery('.js-anime-common-header-hover').hover(function () {
8        jQuery(this).children('div').stop(true).slideDown(100);
9        return false;
10    }, function () {
11        jQuery(this).children('div').stop(true).slideUp(100);
12        return false;
13    });
14	
15	//カラーコード指定
16	if(jQuery('#page_color_code').length){
17		let page_color_code_set = jQuery('#page_color_code').val();
18		if(page_color_code_set.indexOf("#") > -1){
19			jQuery('body').css('background-color', page_color_code_set);			
20		}else{
21			let page_color_code_set = '#' + jQuery('#page_color_code').val();			
22			jQuery('body').css('background-color', page_color_code_set);
23		}
24	}
25	
26	//欧文フォント指定
27	if(jQuery('#page_font_style').length){
28		jQuery('#page_font_style').each(function() {
29			let page_font_style_name = jQuery(this).text();
30
31			//inter
32			if(page_font_style_name.match("Inter")){
33				jQuery('body').addClass('font-inter');
34			}
35
36			//Public Sans
37			if(page_font_style_name.match("Public")){
38				jQuery('body').addClass('font-public-s');
39			}
40			//Lora Sans
41			if(page_font_style_name.match("Lora")){
42				jQuery('body').addClass('font-lora');
43			}
44			//Roboto Slab
45			if(page_font_style_name.match("Roboto")){
46				jQuery('body').addClass('font-roboto-sb');
47			}
48			//DM Serif Display
49			if(page_font_style_name.match("DM")){
50				jQuery('body').addClass('font-dm-serif');
51			}
52		});
53	}	
54
55	//ブランドヘッダー追従
56	jQuery(window).scroll(function () {
57		let nav = jQuery('.common-header-inner').height();
58		if (nav == undefined) {
59			nav = 0;
60		}
61		if(jQuery('.brand-header-wrap').length){
62			if(jQuery(window).scrollTop() > nav) {
63				jQuery('.brand-header-wrap').addClass('brand-header-fixed');
64			}else{
65				jQuery('.brand-header-wrap').removeClass('brand-header-fixed');
66			}
67		}
68
69		if(jQuery('.corporate-nav-area').length){
70			if(jQuery(window).scrollTop() > nav) {
71				jQuery('.corporate-header-wrap').addClass('corporate-header-fixed');
72			}else{
73				jQuery('.corporate-header-wrap').removeClass('corporate-header-fixed');
74			}
75		}
76        
77		//オンラインヘッダー
78		if(jQuery('.online-header-wrap').length){
79			if(jQuery(window).scrollTop() > nav) {
80				jQuery('.online-header-wrap').addClass('online-header-fixed');
81			}else{
82				jQuery('.online-header-wrap').removeClass('online-header-fixed');
83			}
84		}        
85
86	});
87
88/* -------------スマホ--------------- */
89
90    /* ハンバーガーメニュー */
91	jQuery('.common-header-drawer').click(function(){
92		jQuery(this).toggleClass('open');
93		if(jQuery(this).hasClass('open')){
94			jQuery('body').addClass('drawer_on');
95		}else{
96			jQuery('body').removeClass('drawer_on');
97		}
98	});
99
100    //ハンバーガー閉じる
101	jQuery('.block-nav-contents-close').click(function(){
102		jQuery('body').removeClass('drawer_on');
103		jQuery('.common-header-drawer').removeClass('open');		
104	});
105	
106    //ハンバーガー閉じる
107	jQuery('.block-nav-contents .block-nav-contents-ttl.ac-list').click(function(){
108		if(jQuery(this).hasClass('ac-open')){
109			jQuery(this).removeClass('ac-open');
110			jQuery(this).next('.block-nav-contents-ac-content').slideUp();			
111		}else{
112			jQuery(this).addClass('ac-open');
113			jQuery(this).next('.block-nav-contents-ac-content').slideDown();			
114		}
115	});
116	
117	//テンプレ
118	if(jQuery('.template-style-carousel').length){
119        jQuery('.template-style-carousel ul').slick({
120				autoplay: true,
121				autoplaySpeed: 2000,
122                dots: true,
123                pager: false,
124				slidesToShow: 1,
125                arrows: false,
126		});
127	}
128    
129	let ww = jQuery('body').width();
130	console.log(ww);
131	if (ww < 769) {
132		/* footer */
133		jQuery('.common-footer .footer-top .footer-main-nav .footer-main-nav-ttl.footer-acd').click(function(){
134			if(jQuery(this).hasClass('acd-on')){
135				jQuery(this).removeClass('acd-on');
136				jQuery(this).next('div').slideUp();			
137			}else{
138				jQuery(this).addClass('acd-on');
139				jQuery(this).next('div').slideDown();			
140			}
141		});	
142	}    
143    
144});
145
146/* ---------------------
147	 YouTube動画モーダル
148-------------------- */
149jQuery(function() {
150    'use strict';
151
152    const $body = jQuery('body');
153    const ua = navigator.userAgent;
154    const iphone = ua.indexOf('iPhone') !== -1;
155    const android = ua.indexOf('Android') !== -1 && ua.indexOf('Mobile') !== -1;
156    const mobile = iphone || android;
157    const tablet = ua.indexOf('iPad') > -1 || ua.indexOf('Android') > -1;
158    const mqlPc = window.matchMedia('(min-width:769px)');
159    const ytApiTag = jQuery('\<script\>');
160    let $this;
161
162    ytApiTag.attr('src', 'https://www.youtube.com/iframe_api');
163    $body.append(ytApiTag);
164
165    jQuery('.js-video-modal').on('click', function (e) {
166        e.preventDefault();
167
168        $this = jQuery(this);
169        const movieId = $this.data('id');
170        const $movie = jQuery('\<div\>').attr({
171            'id': movieId,
172            'class': 'free-video-frame'
173        });
174        const $modalCloseBtn = jQuery('\<button\>').attr({
175            'type': 'button',
176            'id': 'js-video-modal-btn',
177            'class': 'free-video-modal-btn'
178        }).html('close');
179        const $movieInnerTag = jQuery('\<div\>').attr('class', 'free-video-wrap-inner').append($movie, $modalCloseBtn);
180        const $movieTag = jQuery('\<div\>').attr('class', 'free-video-wrap').append($movieInnerTag);
181        const $modalOverlay = jQuery('\<div\>').attr({
182            'id': 'js-modal-overlay',
183            'class': 'free-modal-overlay'
184        }).append($movieTag);
185        const clientWidth = $body[0].clientWidth;
186        let player;
187
188        $body.addClass('is-modal-open').after($modalOverlay);
189
190        player = new YT.Player(movieId, {
191            width: '700',
192            height: '393.5',
193            videoId: movieId,
194            events: {
195                'onReady': onPlayerReady
196            }
197        });
198
199        // スクロールバーのズレ対策
200        if(!mobile && !tablet) {
201            const noScrollbarWidth = $body.clientWidth;
202            const difference = noScrollbarWidth - clientWidth;
203            if (difference > 0) {
204                $body.css('padding-right', difference + 'px');
205
206                if(!mqlPc.matches) {
207                    $header.css('padding-right', difference + 'px');
208                }
209            }
210        }
211    });
212
213    jQuery(document).on('click', '#js-modal-overlay, .js-video-modal-btn', function() {
214        closeModal();
215    });
216
217    function onPlayerReady(event) {
218        event.target.mute();
219        // event.target.playVideo();
220    }
221
222    function closeModal() {
223        jQuery('.free-modal-overlay').remove();
224        $body.removeClass('is-modal-open');
225
226        // スクロールバーのズレ対策
227        if(!mobile && !tablet) {
228            $body.css('padding-right', '');
229
230            if(!mqlPc.matches) {
231                jQuery('header').css('padding-right', '');
232            }
233        }
234    }
235
236    // ブロック内再生
237    jQuery('.js-video-intrablock').on('click', function (e) {
238        e.preventDefault();
239
240        $this = jQuery(this);
241        const intraBlockMovieId = $this.data('id');
242        const $intraBlockMovie = jQuery('\<div\>').attr({
243            'id': intraBlockMovieId,
244            'class': 'free-video-frame'
245        });
246        const $intraBlockMovieTag = jQuery('\<div\>').attr('class', 'free-video-wrap').append($intraBlockMovie);
247
248        $this.children('img').hide();
249        $this.append($intraBlockMovieTag).addClass('is-play');
250
251        let intraBlockPlayer = new YT.Player(intraBlockMovieId, {
252            width: '100%',
253            height: '100%',
254            videoId: intraBlockMovieId,
255            events: {
256                'onReady': onPlayerReady
257            }
258        });
259    });
260});
261
262/* ---------------------
263	下書き・非公開アイコン表示調整※編集禁止※
264-------------------- */
265jQuery(function() {
266    // プレビューのみ機能させる
267    const txtCheck = jQuery('title').text();
268    if(txtCheck.indexOf('\u30D7\u30EC\u30D3\u30E5\u30FC\u4E2D') >= 0) {
269        const targetStatus = jQuery('.smzpreview-article_data_status');
270        if (targetStatus.length <= 0) {
271            return;
272        }
273
274        targetStatus.each(function () {
275            let $this = jQuery(this);
276            let leftPosition;
277
278            $this.css({
279                'width': '150px',
280                'height': 'auto',
281                'font-size': '10px',
282                'text-align': 'center',
283                'box-sizing': 'border-box',
284                'position': 'absolute'
285            });
286
287            if ($this.prev().length) {
288                leftPosition = $this.prev();
289            } else {
290                leftPosition = $this.closest('[class]');
291            }
292
293            // [下書き]
294            if ($this.find('span[style]').text() === '\u005B\u4E0B\u66F8\u304D\u005D') {
295                $this.css('left', leftPosition.offset().left);
296                $this.prev().prepend($this.clone(true));
297            } else {//非公開
298                $this.css('left', $this.next().offset().left);
299                $this.next().prepend($this.clone(true));
300            }
301
302            $this.remove();
303        });
304    }
305});
306
307/* ---------------------
308	ヘッダーログイン前後で入れ替え
309-------------------- */
310jQuery(window).on('load',function () {
311	$.ajax({
312		url: '/shop/',
313		type: 'get',
314		dataType: 'html',
315		timeout: 10000
316	})
317	.then(
318		function(data) {
319			if($(data).find('#login_status_on').length){
320				jQuery('.common-header .common-header-menu-mypage').show();
321			}else{
322				jQuery('.common-header .common-header-menu-login').show();
323			}
324		},
325		function(XMLHttpRequest, textStatus, errorThrown) {
326			jQuery('.common-header .common-header-menu-login').show();
327			console.log('error');
328		}
329	);
330});
331
332/* ---------------------
333	ページトップへ戻る
334-------------------- */
335jQuery(window).on('scroll resize', function () {
336	var scrollHeight = jQuery(document).height();
337	var scrollPosition = jQuery(window).height() + jQuery(window).scrollTop();
338	var footHeight = jQuery('footer').height();
339	if (footHeight == undefined) {
340		footHeight = 0;
341	}
342
343	if (jQuery(this).scrollTop() > 120) {
344		jQuery('#footer_pagetop').fadeIn();
345	} else if (jQuery(this).scrollTop() < 80) {
346		jQuery('#footer_pagetop').fadeOut();
347	}
348});
349
350jQuery(function () {
351	//--- スムーススクロール
352	jQuery('a[href^="#header"]').click(function () {
353		var speed = 500;
354		var href = jQuery(this).attr("href");
355		var target = jQuery(href == "#" || href == "" ? 'html' : href);
356		var position = target.offset().top;
357		jQuery('body,html').animate({ scrollTop: position }, speed, 'swing');
358		return false;
359	});
360});
361
362/* ---------------------
363	iPad/タブレット
364-------------------- */
365jQuery(function () {
366	if (navigator.userAgent.indexOf('iPhone') > 0 || navigator.userAgent.indexOf('Android') > 0 && navigator.userAgent.indexOf('Mobile') > 0) {
367	} else if (navigator.userAgent.indexOf('Safari') > 0 && navigator.userAgent.indexOf('Chrome') == -1 && typeof document.ontouchstart !== 'undefined') {
368		if (navigator.userAgent.indexOf('iPad') > 0 || navigator.userAgent.indexOf('Android') > 0) {
369			jQuery('meta[name=viewport]').attr('content', 'width=1240');
370		}else{
371			jQuery('meta[name=viewport]').attr('content', 'width=1240');		
372		}
373		
374	}
375	var ua = navigator.userAgent;
376	if (ua.indexOf('iPhone') > 0 || ua.indexOf('iPod') > 0 || (ua.indexOf('Android') > 0) && (ua.indexOf('Mobile') > 0) || ua.indexOf('Windows Phone') > 0) {
377	} else if (ua.indexOf('iPad') > 0 || ua.indexOf('Android') > 0) {
378	    jQuery('.footer-acc-ttl').click(function() {
379				if (jQuery(this).next().not(':animated').length >= 1) {
380					jQuery(this).toggleClass('footer_open_');
381					jQuery(this).next().stop(true).slideToggle();
382				};
383			});
384	} else {
385	    jQuery('.footer-acc-ttl').click(function() {
386				if (jQuery(this).next().not(':animated').length >= 1) {
387					jQuery(this).toggleClass('footer_open_');
388					jQuery(this).next().stop(true).slideToggle();
389				};
390			});
391	}
392});
393
394/* ---------------------
395	ajaxcart
396-------------------- */
397jQuery(document).ready(function(){
398	jQuery.ajax({
399		url: "/shop/js/cart.aspx",
400		cache: false,
401		dataType: "html",
402		success: function(html) {
403			var count = jQuery(html).data('count');
404			if(!count) {
405				jQuery('.js-cart-count').hide();
406			} else {
407				jQuery('.js-cart-count').text(count).show();
408			}
409		},
410		error: function(XMLHttpRequest, textStatus, errorThrown){console.log('error');},
411	});
412});
413
414
415/* フェードあり削除 rev.240719 */
416/*
417jQuery(function(){
418	jQuery('.breadcrumb-inner .breadcrumb span').each(function(){
419		if(jQuery(this).hasClass('breadcrumb-item').length != -1){
420			var fade_y = jQuery(this).children('a').text();
421			if(fade_y.indexOf('フェードあり') != -1) {
422				jQuery(this).prev().remove();
423				jQuery(this).remove();
424			}
425		}
426	})
427})
428*/

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.