PageSourceSearch

https://www.nsw.co.jp/nadia_js/top.js

js nsw.co.jp collected 2026-10-03 18:16:26 UTC 10,723 bytes, 320 lines download raw bytes

1
2/******/ (function() { // webpackBootstrap
3/******/ 	"use strict";
4
5window.addEventListener("load", () => { });
6// class CircularProgressSlider {
7//   //----- スライド1
8//   constructor() {
9//     this.currentSlide = 0;
10//     this.totalSlides = 2;
11//     this.autoPlayInterval = null;
12//     this.isPlaying = true;
13//     this.slideDuration = 3000;
14//     this.slides = document.querySelectorAll(".slide");
15//     this.indicators = document.querySelectorAll(".indicator");
16//     this.playPauseBtn = document.getElementById("playPauseBtn");
17//     this.init();
18//   }
19//   init() {
20//     this.playPauseBtn.addEventListener("click", () => {
21//       this.togglePlayPause();
22//     });
23//     this.indicators.forEach((indicator, index) => {
24//       indicator.addEventListener("click", () => {
25//         this.goToSlide(index);
26//       });
27//     });
28//     this.startAutoPlay();
29//   }
30//   goToSlide(slideIndex) {
31//     this.slides[this.currentSlide].classList.remove("active");
32//     this.indicators[this.currentSlide].classList.remove("active");
33//     this.currentSlide = slideIndex;
34//     this.slides[this.currentSlide].classList.add("active");
35//     this.indicators[this.currentSlide].classList.add("active");
36//     if (this.isPlaying) {
37//       this.restartAutoPlay();
38//     }
39//   }
40//   nextSlideAuto() {
41//     const nextIndex = (this.currentSlide + 1) % this.totalSlides;
42//     this.goToSlide(nextIndex);
43//   }
44//   startAutoPlay() {
45//     if (this.autoPlayInterval) {
46//       clearInterval(this.autoPlayInterval);
47//     }
48//     this.autoPlayInterval = setInterval(() => {
49//       this.nextSlideAuto();
50//     }, this.slideDuration);
51//   }
52//   stopAutoPlay() {
53//     if (this.autoPlayInterval) {
54//       clearInterval(this.autoPlayInterval);
55//       this.autoPlayInterval = null;
56//     }
57//   }
58//   restartAutoPlay() {
59//     this.stopAutoPlay();
60//     this.startAutoPlay();
61//   }
62//   togglePlayPause() {
63//     if (this.isPlaying) {
64//       this.pause();
65//     } else {
66//       this.play();
67//     }
68//   }
69//   pause() {
70//     this.isPlaying = false;
71//     this.stopAutoPlay();
72//     this.playPauseBtn.classList.remove("playing");
73//     const activeIndicator = this.indicators[this.currentSlide];
74//     activeIndicator.classList.add("paused");
75//   }
76//   play() {
77//     this.isPlaying = true;
78//     this.startAutoPlay();
79//     this.playPauseBtn.classList.add("playing");
80//     const activeIndicator = this.indicators[this.currentSlide];
81//     activeIndicator.classList.remove("paused");
82//   }
83// }
84// document.addEventListener("DOMContentLoaded", () => {
85//   new CircularProgressSlider();
86// });
87//----- スライド2
88let mySwiper = null;
89function initSwiperIfNeeded() {
90    const isDesktop = window.innerWidth >= 768;
91    const swiperContainer = document.querySelector(".swiper");
92    if (!swiperContainer) {
93        return;
94    }
95    const swiperWrapper = swiperContainer.querySelector(".swiper-wrapper");
96    const swiperSlides = swiperContainer.querySelectorAll(".swiper-slide");
97    if (!swiperWrapper || swiperSlides.length === 0) {
98        return;
99    }
100    if (isDesktop && !mySwiper) {
101        try {
102            mySwiper = new Swiper(".swiper", {
103                loop: true,
104                slidesPerView: "auto",
105                spaceBetween: 20,
106                freeMode: false,
107                navigation: {
108                    nextEl: ".swiper-button-next-custom",
109                    prevEl: ".swiper-button-prev-custom",
110                },
111                breakpoints: {
112                    768: {
113                        slidesPerView: "auto",
114                        spaceBetween: 50,
115                    },
116                    1024: {
117                        slidesPerView: "auto",
118                        spaceBetween: 50,
119                    },
120                },
121                on: {
122                    init: function () {
123                        if (typeof updateProgress === "function") {
124                            updateProgress(this);
125                        }
126                    },
127                    slideChange: function () {
128                        if (typeof updateProgress === "function") {
129                            updateProgress(this);
130                        }
131                    },
132                },
133            });
134        }
135        catch (error) {
136            mySwiper = null;
137        }
138    }
139    else if (!isDesktop && mySwiper) {
140        try {
141            mySwiper.destroy(true, true);
142            mySwiper = null;
143        }
144        catch (error) {
145            mySwiper = null;
146        }
147        const progressFill = document.getElementById("progressFill");
148        if (progressFill)
149            progressFill.style.width = "0%";
150        const currentSlide = document.getElementById("currentSlide");
151        const totalSlides = document.getElementById("totalSlides");
152        if (currentSlide)
153            currentSlide.textContent = "";
154        if (totalSlides)
155            totalSlides.textContent = "";
156    }
157}
158function updateProgress(swiperInstance) {
159    if (!swiperInstance || !swiperInstance.slides) {
160        return;
161    }
162    const totalSlides = swiperInstance.slides.length - swiperInstance.loopedSlides * 2 || 0;
163    const currentIndex = swiperInstance.realIndex;
164    let visibleSlides = swiperInstance.params.slidesPerView;
165    if (visibleSlides === "auto") {
166        visibleSlides = Math.floor(swiperInstance.width / (swiperInstance.slides[0].offsetWidth + swiperInstance.params.spaceBetween));
167    }
168    const progressPercentage = ((currentIndex + 1) / totalSlides) * 100;
169    const progressFill = document.getElementById("progressFill");
170    if (progressFill) {
171        progressFill.style.width = Math.min(progressPercentage, 100) + "%";
172    }
173    const currentSlideElement = document.getElementById("currentSlide");
174    const totalSlidesElement = document.getElementById("totalSlides");
175    if (currentSlideElement) {
176        currentSlideElement.textContent = currentIndex + 1;
177    }
178    if (totalSlidesElement) {
179        totalSlidesElement.textContent = totalSlides;
180    }
181}
182document.addEventListener("DOMContentLoaded", () => {
183    setTimeout(() => {
184        initSwiperIfNeeded();
185    }, 100);
186});
187window.addEventListener("load", () => {
188    setTimeout(() => {
189        initSwiperIfNeeded();
190    }, 100);
191});
192let resizeTimeout;
193window.addEventListener("resize", () => {
194    clearTimeout(resizeTimeout);
195    resizeTimeout = setTimeout(() => {
196        initSwiperIfNeeded();
197        if (mySwiper && typeof updateProgress === "function") {
198            updateProgress(mySwiper);
199        }
200    }, 200);
201});
202// スライド3
203let mySwiper2 = null;
204function initSwiperIfNeeded2() {
205    const width = window.innerWidth;
206    const isDesktop = width >= 768;
207    const isStopSlide = width >= 1740;
208    const swiperContainer = document.querySelector(".swiper2");
209    if (!swiperContainer)
210        return;
211    const swiperWrapper = swiperContainer.querySelector(".swiper-wrapper");
212    const swiperSlides = swiperContainer.querySelectorAll(".swiper-slide");
213    if (!swiperWrapper || swiperSlides.length === 0)
214        return;
215    if (isStopSlide) {
216        // 1740px以上の場合はSwiperが存在していればdestroyし、なければそのまま何もしない
217        if (mySwiper2) {
218            mySwiper2.destroy(true, true);
219            mySwiper2 = null;
220        }
221        // ここで処理を抜けると、Swiperは初期化されず、固定表示状態になる
222        return;
223    }
224    else {
225        // 1740px未満で、まだSwiperがないなら初期化!
226        if (isDesktop && !mySwiper2) {
227            mySwiper2 = new Swiper(".swiper2", {
228                loop: false,
229                slidesPerView: "auto",
230                spaceBetween: 20,
231                navigation: {
232                    nextEl: ".swiper-button-next-custom2",
233                    prevEl: ".swiper-button-prev-custom2",
234                },
235                breakpoints: {
236                    768: {
237                        slidesPerView: "auto",
238                        spaceBetween: 50,
239                    },
240                    1024: {
241                        slidesPerView: 3,
242                        spaceBetween: 50,
243                    },
244                    1740: {
245                        slidesPerView: 4,
246                        // spaceBetween: 50,
247                    },
248                },
249                on: {
250                    init: function () {
251                        if (typeof updateProgress2 === "function") {
252                            updateProgress2(this);
253                        }
254                    },
255                    slideChange: function () {
256                        if (typeof updateProgress2 === "function") {
257                            updateProgress2(this);
258                        }
259                    },
260                },
261            });
262        }
263    }
264}
265function updateProgress2(swiperInstance) {
266    if (!swiperInstance || !swiperInstance.slides)
267        return;
268    const realSlides = Array.from(swiperInstance.slides).filter((slide) => !slide.classList.contains("swiper-slide-duplicate"));
269    const totalSlides = realSlides.length;
270    const currentIndex = swiperInstance.realIndex;
271    const progressPercentage = ((currentIndex + 3) / totalSlides) * 100;
272    const progressFill = document.getElementById("progressFill2");
273    if (progressFill) {
274        progressFill.style.width = Math.min(progressPercentage, 100) + "%";
275    }
276    const currentSlideElement = document.getElementById("currentSlide2");
277    const totalSlidesElement = document.getElementById("totalSlides2");
278    if (currentSlideElement) {
279        currentSlideElement.textContent = currentIndex + 1;
280    }
281    if (totalSlidesElement) {
282        totalSlidesElement.textContent = totalSlides;
283    }
284}
285// イベントリスナー系
286document.addEventListener("DOMContentLoaded", () => {
287    setTimeout(() => {
288        initSwiperIfNeeded2();
289    }, 100);
290});
291window.addEventListener("load", () => {
292    setTimeout(() => {
293        initSwiperIfNeeded2();
294    }, 100);
295});
296let resizeTimeout2;
297window.addEventListener("resize", () => {
298    clearTimeout(resizeTimeout2);
299    resizeTimeout2 = setTimeout(() => {
300        initSwiperIfNeeded2();
301        if (mySwiper2 && typeof updateProgress2 === "function") {
302            updateProgress2(mySwiper2);
303        }
304    }, 200);
305});
306//MV
307document.addEventListener("DOMContentLoaded", function () {
308    const header = document.querySelector(".hdr");
309    const root = document.documentElement;
310    if (header) {
311        const headerHeight = header.offsetHeight;
312        root.style.setProperty("--header-height", `${headerHeight}px`);
313    }
314});
315
316/******/ })()
317;
318
319
320

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.