PageSourceSearch

https://www.yamaegroup-hd.co.jp/wp/wp-content/themes/yamae2023/assets/js/common.js?ver=250409061804

js yamaegroup-hd.co.jp collected 2026-10-05 06:48:52 UTC 7,238 bytes, 232 lines download raw bytes

1// 定数
2const breakPoint = 768; // SPブレイクポイント
3const breakPointSide = 1200; // サイドメニューブレイクポイント
4const scalingPoint = 375; // 縮小表示ポイント
5
6const $win = $(window);
7const $header = $('header');
8
9// viewportの変換
10!(function () {
11	const viewport = document.querySelector('meta[name="viewport"]');
12	function switchViewport() {
13		const value =
14			window.outerWidth > scalingPoint ? 'width=device-width,initial-scale=1' : 'width=375';
15		if (viewport.getAttribute('content') !== value) {
16			viewport.setAttribute('content', value);
17		}
18	}
19	addEventListener('resize', switchViewport, false);
20	switchViewport();
21})();
22
23
24// ヘッダー:ハンバーガーメニューの開閉(SP時のみ)
25var $menuSwitch = $('.js-header_nav_switch'),
26	$menuPanel = $('.js-header_nav_panel');
27$menuSwitch.on('click', function (e) {
28	e.preventDefault();
29	$(this).toggleClass('is-open');
30	$menuPanel.toggleClass('is-open');
31	$('html').toggleClass('is-open');
32});
33
34
35// ヘッダー:アコーディオンの開閉(SP時のみ)
36var $accordionSwitch = $('.js-header_accordion_switch');
37$accordionSwitch.on('click', function (e) {
38	if ($win.width() < breakPoint) {
39		e.preventDefault();
40		$(this).toggleClass('is-open');
41		$(this).next('.js-header_accordion_panel').slideToggle();
42	}
43});
44
45
46// ヘッダー:ハンバーガーメニューの画面リサイズ対応
47$win.on('resize', function () {
48	var w = $(this).width();
49	if (w >= breakPoint) {
50		$menuSwitch.removeClass('is-open');
51		$menuPanel.removeClass('is-open');
52		$('html').removeClass('is-open');
53		$accordionSwitch.removeClass('is-open');
54		$('.js-header_accordion_panel').show();
55	}
56});
57
58
59// フッター:ページの先頭ボタン
60$('#js_footer_pagetop').on('click', smoothScroll);
61$('.js_anchor_link').on('click', smoothScroll);
62function smoothScroll(eo) {
63	const speed = 500;
64	const href = $(this).attr('href');
65	let position;
66	let $target;
67	if (href === '#' || href === '') {
68		if ($('body').hasClass('page-template-page-business-network')) { // 拡がる事業領域ページのみ
69			$target = $('main.network_main');
70		} else {
71			$target = $('html');
72		}
73		position = $target.offset().top;
74	} else {
75		$target = href;
76		position = $($target).offset().top;
77	}
78	if ($('body').hasClass('page-template-page-business-network')) { // 拡がる事業領域ページのみ
79		$('.network_main').animate({ scrollTop: position }, speed, 'swing');
80	} else {
81		$('body,html').animate({ scrollTop: position }, speed, 'swing');
82	}
83	return false;
84}
85
86
87// モジュール:アコーディオン
88var $moduleAaccordionSwitch = $('.js_module_accordion_switch');
89$moduleAaccordionSwitch.on('click', function (e) {
90	$(this).toggleClass('is-open');
91	$(this).parent('dt').next('.js_module_accordion_panel').slideToggle();
92});
93
94
95// モジュール:タブ
96var $moduleTabSwitchs = $('.js_module_tab_menu a'),
97	$moduleTabPanels = $('.js_module_tab_panel');
98$moduleTabSwitchs.on('click', function (e) {
99	e.preventDefault();
100	var targetID = $(this).attr('href'),
101		$targetPanel = $(targetID);
102	$moduleTabSwitchs.parent().removeClass('is-current');
103	$moduleTabPanels.removeClass('is-show');
104	$(this).parent().addClass('is-current');
105	$targetPanel.addClass('is-show');
106});
107
108
109// モジュール:株価ボードの言語切替
110document.addEventListener("DOMContentLoaded", function () {
111	const buttons = document.querySelectorAll(".js_module_price_changer button");
112	const priceImages = document.querySelectorAll(".js_module_price_panel");
113
114	buttons.forEach(function (button) {
115		button.addEventListener("click", function () {
116			const buttonText = button.textContent;
117			buttons.forEach(function (btn) {
118				btn.classList.remove("is-current");
119			});
120			button.classList.add("is-current");
121			priceImages.forEach(function (priceImage) {
122				if (buttonText === "EN") {
123					priceImage.src = "https://dimg.stockweather.co.jp/sw_dimg/7130/7130e_01.ashx";
124				} else if (buttonText === "日本語") {
125					priceImage.src = "https://dimg.stockweather.co.jp/sw_dimg/7130/7130j_01.ashx";
126				}
127			});
128		});
129	});
130});
131
132
133// モジュール:株価チャートの言語切替
134document.addEventListener("DOMContentLoaded", function () {
135	const buttons = document.querySelectorAll(".js_module_chart_changer button");
136	const chartPanel = document.getElementById("js_module_chart_panel");
137
138	buttons.forEach(function (button) {
139		button.addEventListener("click", function () {
140			const buttonText = button.textContent;
141			buttons.forEach(function (btn) {
142				btn.classList.remove("is-current");
143			});
144			button.classList.add("is-current");
145			if (buttonText === "EN") {
146				chartPanel.src = chartPanel.src.replace(/\?lang=\w+/, "") + "?lang=en";
147			} else if (buttonText === "日本語") {
148				chartPanel.src = chartPanel.src.replace(/\?lang=\w+/, "");
149			}
150		});
151	});
152});
153
154
155// モジュール:スクロールヒント
156new ScrollHint('.js-scrollable', {
157	scrollHintIconAppendClass: 'scroll-hint-icon-white',
158	i18n: {
159		scrollable: 'スクロールできます'
160	}
161});
162
163
164// こんなところにヤマエ:モーダル
165$(function () {
166	$('.js-modal-target').on('click', function (e) {
167		e.preventDefault();
168		$('.modal').hide();
169		$($(this).attr('href')).fadeToggle();
170	});
171	$('.modal-close').on('click', function () {
172		$('.modal').hide();
173	});
174	$('.modal-toggle').on('click', function () {
175		$('.modal').hide();
176	});
177});
178
179
180// 拡がる事業領域
181if ($('body').hasClass('page-template-page-business-network')) {
182	var headings = document.querySelectorAll('.network_box');
183	var network_main = document.getElementById('js_network_main');
184	var menu = document.getElementById('js_network_menu');
185	var offset = window.innerWidth < breakPointSide ? 300 : 200;
186
187	function resizeHandler() {
188		if (window.innerWidth < breakPointSide) { // SPレイアウトではscroll-snapしないので画面全体でスクロールを検知する
189			window.addEventListener('scroll', function () {
190				updateMenu();
191			});
192		} else { // PCレイアウトではスクロールコンテナー(network_main)内でスクロールを検知する
193			network_main.addEventListener('scroll', function () {
194				updateMenu();
195			});
196		}
197	}
198
199	window.addEventListener('resize', resizeHandler);
200	resizeHandler();
201
202	function updateMenu() {
203		headings.forEach(function (heading, index) {
204			let i = index + 1;
205			let target = document.querySelector('#js_network_menu li:nth-of-type(' + i + ')');
206			let pos = heading.getBoundingClientRect().top;
207			if (pos < offset) {
208				if (headings[index + 1] !== undefined) {
209					let next_pos = headings[index + 1].getBoundingClientRect().top;
210					if (next_pos < offset) {
211						target.classList.remove('is_current');
212					} else if (target.classList.contains('is_current') == true) {
213						return;
214					} else if (i == 1 && menu.classList.contains('is_active') == false) {
215						target.classList.add('is_current');
216						menu.classList.add('is_active');
217					} else {
218						target.classList.add('is_current');
219					}
220				} else {
221					target.classList.add('is_current');
222				}
223			} else {
224				target.classList.remove('is_current');
225				if (i == 1 && menu.classList.contains('is_active')) {
226					menu.classList.remove('is_active');
227				}
228			}
229		});
230	}
231
232}

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.