PageSourceSearch

https://www.toyamarokikyo.or.jp/lib_front/scripts/common.js

js toyamarokikyo.or.jp collected 2026-10-06 08:09:52 UTC 9,850 bytes, 281 lines download raw bytes

1// スムーススクロール
2$(function(){
3    $(document).on("click", "a[href*='#']:not(.no_scroll)", function(){
4        if(!sizeSp){
5            var headerHeight = 0; // 固定ヘッダの高さ(PC)
6        }else{
7            var headerHeight = 0; // 固定ヘッダの高さ(SP)
8        }
9        var speed = 500; // スクロールの速さ
10        var href= $(this).attr("href");
11        var target = $(href == "#" || href == "" ? 'html' : href);
12        var position = target.offset().top-headerHeight;
13        $("html, body").animate({scrollTop:position}, speed, "swing");
14        // lazyLoad対策
15        setTimeout(function(){
16            var positionBefore = position;
17            position = target.offset().top-headerHeight;
18            var positionGap = Math.abs(positionBefore - position);
19            if(positionGap > 10){
20                $("html, body").scrollTop(position);
21            }
22        },1000);
23        return false;
24    });
25});
26
27//別ページからのアンカーリンク
28$(window).on('load', function() {
29    if(!sizeSp){
30        var headerHeight = 0; // 固定ヘッダの高さ(PC)
31    }else{
32        var headerHeight = 0; // 固定ヘッダの高さ(SP)
33    }
34    var urlHash = location.hash;
35    if(urlHash){
36        var target = $(urlHash);
37        if(target.length){
38            var position = target.offset().top-headerHeight;
39            $("html, body").scrollTop(position);
40            // lazyLoad対策
41            setTimeout(function(){
42                var positionBefore = position;
43                position = target.offset().top-headerHeight;
44                var positionGap = Math.abs(positionBefore - position);
45                if(positionGap > 10){
46                    $("html, body").scrollTop(position);
47                }
48            },1000);
49        }
50    }
51});
52
53// ユーザーエージェントチェック
54var agent = navigator.userAgent;
55
56var spFlag = false;
57if(agent.indexOf("iPhone") > 0){
58    // iphone処理
59    spFlag = true;
60}else if(agent.indexOf("Android") > 0){
61    // android処理
62    spFlag = true;
63}
64
65//============================================================
66//	レスポンシブ用(不要な場合は削除)
67//============================================================
68// 画面サイズ取得
69var breakpoint = 767;
70var sizeSp = false;
71if(window.matchMedia('(max-width:'+ breakpoint + 'px)').matches){
72    sizeSp = true;
73}else{
74    sizeSp = false;
75}
76
77// LazyLoad用
78$(function(){
79    $('img[data-src]').not('.swiper-lazy').addClass('lazyload');
80    window.lazySizesConfig = window.lazySizesConfig || {};
81    lazySizesConfig.srcAttr = 'data-src';
82});
83
84//============================================================
85//	サイト毎に共通動作を記述する場合はここより下で行うこと
86//============================================================
87// ウィンドウのスクロールの有効/無効
88var defaultPosition;
89var windowScrollTop;
90function windowScrollToggle() {
91    var target = $('#container');
92    if (target.css('position') == 'fixed') {
93        target.css({ 'position': defaultPosition, 'top': '0' });
94        $('html,body').scrollTop(windowScrollTop);
95    } else {
96        defaultPosition = target.css('position');
97        windowScrollTop = $(window).scrollTop();
98        target.css({ 'position': 'fixed', 'top': -windowScrollTop });
99    }
100}
101
102// スライダーを初期化(引数minSlidesSpは省略可)
103function initSlider(elementName, settings, enabledLazy, minSlides, minSlidesSp) {
104    // 自動で初期化しないオプションを追加
105    settings.init = false;
106    // IEでobject-fitの画像の場合は画像の遅延読み込みを無効に設定
107    var userAgent = window.navigator.userAgent.toLowerCase();
108    var objectFitClass = 'imgCover2';
109    if (userAgent.indexOf('msie') != -1 || userAgent.indexOf('trident') != -1) {
110        // IEの場合
111        if ($(elementName + ' .' + objectFitClass).length > 0) {
112            // objext-fitの場合
113            enabledLazy = false;
114        }
115    }
116    // スライダーの画像の遅延読み込みを設定
117    if (enabledLazy) {
118        settings.lazy = { loadPrevNext: true };
119        $(elementName + ' img[data-src]').addClass('swiper-lazy').removeClass('lazyload');
120    }
121    // スライダーの変数を設定
122    var slider = new Swiper(elementName + ' .swiper-container', settings);
123    // スマホの最小のスライド枚数を設定
124    if (minSlidesSp != undefined && sizeSp) {
125        minSlides = minSlidesSp;
126    }
127    // 最小のスライド枚数よりスライド枚数が多いか判定
128    if (getSliderCount(elementName) > minSlides) {
129        // スライダーを初期化
130        try { slider.init(); } catch (e) { }
131    } else {
132        // スライダーのパーツを非表示
133        $(elementName + ' .swiper-button-prev,' + elementName + ' .swiper-button-next,' + elementName + ' .swiper-pagination').css({ 'cssText': 'display: none !important;' });
134        $(elementName).addClass('disabled');
135        if (enabledLazy) {
136            $(elementName).find('.swiper-lazy').removeClass('swiper-lazy').addClass('lazyload');
137        }
138    }
139    return slider;
140}
141
142// スライダーの枚数をカウント
143function getSliderCount(elementName) {
144    return $(elementName + ' .swiper-slide:not(.swiper-slide-duplicate)').length;
145}
146
147// ループ指定のスライダーのLightboxが正しく動作するようにする
148function setSliderLightbox(elementName) {
149    // 最初のスライドの前・最後のスライドの後に挿入されるクローンのLightboxを削除
150    $(elementName + ' .swiper-slide.swiper-slide-duplicate a').removeAttr('data-lightbox');
151    $(elementName + ' .swiper-slide.swiper-slide-duplicate a').attr('href', 'javascript:void(0)');
152    // クローンのLightboxをクリック
153    $(elementName + ' .swiper-slide.swiper-slide-duplicate a').on('click', function () {
154        // クローンではないスライドのLightboxを実行する
155        var index = $(this).closest('.swiper-slide').attr('data-swiper-slide-index');
156        $(elementName + ' .swiper-slide:not(.swiper-slide-duplicate):eq(' + index + ') a').trigger('click');
157    });
158}
159
160$('#btnNavi a, #spNavi .btnClose02').click(function () {
161    if ($('#header').hasClass('naviOpen')){
162        $('#header').removeClass('naviOpen');
163        $('#btnNavi').removeClass('naviOpen');
164    }else{
165        $('#header').addClass('naviOpen');
166        $('#btnNavi').addClass('naviOpen');
167    }
168    $('#container').toggleClass('naviOpen');
169    windowScrollToggle();
170});
171
172//タブレット判定
173var ua = navigator.userAgent
174var sp = ua.indexOf('iPhone') > -1 ||
175    (ua.indexOf('Android') > -1 && ua.indexOf('Mobile') > -1)
176var isTablet = !sp && (
177    ua.indexOf('iPad') > -1 ||
178    (ua.indexOf('Macintosh') > -1 && 'ontouchend' in document) ||
179    ua.indexOf('Android') > -1
180)
181$(function () {
182    if (isTablet) {
183        $('meta[name="viewport"]').attr('content', 'width=1400')
184    }
185});
186
187// スクロールで現れる写真と記事の表示
188$(function(){
189    jsShow();
190    $(window).scroll(function(e){
191        jsShow();
192    });
193});
194function jsShow(){
195    $('.jsHide').each(function (index, el) {
196        var windowTop = $(window).scrollTop();
197        var windowHeight = $(window).height();
198        var tabHeight = (parseInt($('body').css('min-width')) / $(window).width()) * windowHeight;
199        var $el = $(el);
200        if (!$el.is('.jsShow')) {
201            var y = $el.offset().top;
202            if (sizeSp) {
203                var oy = windowTop + (windowHeight / 1.25);
204            } else if (isTablet) {
205                var oy = windowTop + (tabHeight / 1.25);
206            } else {
207                var oy = windowTop + (windowHeight / 1.25);
208            }
209            if (y < oy) {
210                $el.addClass('jsShow');
211            }
212        }
213    });
214}
215
216$(function () {
217    // animeWrapperをすべて取得する
218    const sliderList = document.querySelectorAll(".animeWrapper");
219    const observer = new IntersectionObserver((entries) => {
220        entries.forEach((entry) => {
221            if (entry.isIntersecting) {
222                entry.target.classList.add("jsShow");
223            }
224        });
225    });
226    // animeWrapperを監視する
227    sliderList.forEach((item) => {
228        observer.observe(item);
229    });
230
231});
232
233//デスクトップ用Webサイトを表示(iPad)判定
234var ua = navigator.userAgent
235var sp = ua.indexOf('iPhone') > -1 ||
236    (ua.indexOf('Android') > -1 && ua.indexOf('Mobile') > -1)
237var isDesktopIpad = !sp && (ua.indexOf('Macintosh') > -1 && 'ontouchend' in document);
238$(function () {
239    if (isDesktopIpad) {
240        $('body').addClass('isDesktopIpad');
241    }
242});
243
244$(function () {
245    $('#gNavi .item').hover(function () {
246        $(".boxSubList:not(:animated)", $(this)).slideDown();
247    }, function () {
248        $(".boxSubList", $(this)).slideUp();
249    });
250});
251
252//デスクトップ用Webサイトを表示(iPad)判定
253var ua = navigator.userAgent
254var sp = ua.indexOf('iPhone') > -1 ||
255    (ua.indexOf('Android') > -1 && ua.indexOf('Mobile') > -1)
256var isDesktopIpad = !sp && (ua.indexOf('Macintosh') > -1 && 'ontouchend' in document);
257$(function () {
258    if (isDesktopIpad) {
259        $('body').addClass('isDesktopIpad');
260    }
261});
262
263$(() => {
264    // 会員専用サイトの「ログアウト」ボタンクリック
265    $(".member-site-logout-button").on("click", function (e) {
266        e.preventDefault();
267        $(this).siblings("form").submit();
268    });
269});
270
271// 確認ページの送信ボタン連打防止
272$(function () {
273    $(".btnSendCo").click(function(){
274        $(this).addClass("no_tap");
275        $('.btnSendCoBack').addClass("no_tap");
276    });
277});
278window.onpageshow = function() {
279    $('.btnSendCo').removeClass("no_tap");
280    $('.btnSendCoBack').removeClass("no_tap");
281};

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.