PageSourceSearch

https://town-web.co.jp/history/share/js_responsive/common.js?d=20261004

js town-web.co.jp collected 2026-10-04 14:59:50 UTC 7,025 bytes, 220 lines download raw bytes

1//ページローダー
2$(function(){
3  $('body').append('<div id="js-loader" class="loader"><div class="loader-animation"></div></div>');
4    $('a[href ^= "http://test.riveredge.jp/"]' + 'a[target != "_blank"]').click(function(){
5        var url = $(this).attr('href');
6        $('#js-loader').fadeIn(600);
7        setTimeout(function(){ location.href = url; }, 800);
8        return false;
9    });
10});
11$(function(){
12  $('#js-loader').delay(1300).fadeOut(900);
13  $('#wrapper').css({'visibility':'visible','opacity':1});
14});
15$(function(){ setTimeout('stopload()', 10000); });
16  function stopload(){
17  $('#js-loader').delay(1300).fadeOut(900);
18}
19//グローバルナビ
20$(function(){
21  var nav = $('.header-nav-item');
22  var navChild = $('.nav-child');
23  var triW = $('.icon-triangle').outerWidth();
24  nav.on('click', function(){
25    var navItemData = $(this).children('span').attr('data-link');//クリックしたナビのaタグのdata-link値を取得
26    var navItemWidth = $(this).width();//クリックしたナビの幅を取得
27    $(this).addClass('parent');
28    var pos = $(this).offset().left;
29    navChild.each(function(){
30      var navChildData = $(this).attr('data-link');//子ナビのdata-link値を全て取得
31      //クリックしたナビのdata-link値と子ナビのdata-link値が同じである場合、その子ナビを開閉させる
32      if(navChildData === navItemData ){
33        $(this).parent().removeClass('parent');
34        $(this).siblings(nav).slideUp();
35        $(this).slideToggle();
36        $(this).children('.icon-triangle').css({'left':pos + (navItemWidth - triW) / 2 + 'px'});
37      }
38    });
39  });
40  $('body').on('click', function(e){
41    if( !$(e.target).closest('.parent').length ){
42      navChild.slideUp();
43      if (nav.hasClass('parent')) {
44        nav.each(function(){
45          $(this).removeClass('parent');
46        });
47      }
48    }
49  });
50});
51
52//物件検索画面の表示・非表示
53$(function(){
54  var state = false;
55  var scrollpos;
56  var target = $('body');
57  var searchLink = $('#search-link');
58  var close = $('#search-window-close');
59  searchLink.on('click', function(){
60    if(state == false) {
61      scrollpos = $(window).scrollTop();
62      target.addClass('fixed').css({'top': -scrollpos});
63      target.addClass('view-sw');
64      state = true;
65    }
66  });
67  close.on('click', function(){
68    if(state == true) {
69      target.removeClass('fixed').css({'top': 0});
70      window.scrollTo( 0 , scrollpos );
71      target.removeClass('view-sw');
72      state = false;
73    }
74  });
75});
76
77//カテゴリ一覧の表示・非表示
78$(function(){
79  var state = false;
80  var scrollpos;
81  var target = $('body');
82  var searchLink = $('#category-list-btn');
83  var close = $('#category-list-close');
84  var spNav = $('#header-link');
85  var spNavHeight = spNav.height();
86  searchLink.on('click', function(){
87    if(state == false) {
88      scrollpos = $(window).scrollTop();
89      target.addClass('fixed').css({'top': -scrollpos});
90      target.addClass('view-cl');
91      spNav.css({'bottom':-spNavHeight+'px'});
92      state = true;
93    }
94  });
95  $(document).on('click', '#category-list-close', function(){
96    if(state == true) {
97      target.removeClass('fixed').css({'top': 0});
98      window.scrollTo( 0 , scrollpos );
99      target.removeClass('view-cl');
100      spNav.css({'bottom':0+'px'});
101      state = false;
102    }
103  });
104});
105//モバイル版ナビ
106$(function(){
107  var spNav = $('#header-link').height();
108  if ($(window).width() <= 1024) {
109    $('#wrapper').css({'padding-bottom': spNav+'px'});
110  }
111});
112//カンタン検索セレクトボックス
113$(function() {
114	function esSelect ($selectBox) {
115    $($selectBox).each(function() {
116      var selectWrap = $(this);
117      var selectItem = $('.select-inner',this);
118			var select = $('.select',this);
119      var selectEnter = $('.enter-btn',this);
120      var selectClose = $('.select-box-close',this);
121      var menu = $('#header-link');
122      var menuHeight = menu.outerHeight();
123
124			select.on('click', function() {
125				$(this).parent().siblings().removeClass('is-open');
126				$(this).parent().toggleClass('is-open');
127        if ($(window).width() <= 1024) {
128          $('body').addClass('view-es');
129          menu.css({'bottom': -menuHeight+'px'})
130        }
131			});
132
133      var checkItem = [];
134      selectEnter.on('click', function() {
135        checkItem.length = 0;
136        var checked = $('.search-checkbox:checked',selectItem);
137        if (checked.length === 0) {
138          if (select.hasClass('i-station')) {
139            select.text('駅を選択してください');
140          }
141          if (select.hasClass('i-area')) {
142            select.text('エリアを選択してください');
143          }
144          if (select.hasClass('i-layout')) {
145            select.text('間取りを選択してください');
146          }
147        } else {
148			if (select.hasClass('i-layout')) {
149				checked.each(function() {
150					var checkedStr = $(this).attr("id");
151					// 要素のidから名称取得して表示("間取"以降の文字列)
152					var checkedVal=checkedStr.substring(checkedStr.indexOf("間取")+2,checkedStr.length);
153					checkItem.push(checkedVal);
154					checkItem = removeArrayDuplicates(checkItem);//重複削除
155					select.text(checkItem);
156				});
157			} else {
158				checked.each(function() {
159					var checkedStr = $(this).val();
160					// 要素のvalueから名称取得して表示("/"以降の文字列)
161					var checkedVal=checkedStr.substring(checkedStr.indexOf("/")+1,checkedStr.length);
162					checkItem.push(checkedVal);
163					checkItem = removeArrayDuplicates(checkItem);//重複削除
164					select.text(checkItem);
165				});
166			}
167        }
168        selectWrap.removeClass('is-open');
169        if ($(window).width() <= 1024) {
170          $('body').removeClass('view-es');
171          menu.css({'bottom': 0+'px'});
172        }
173      });
174
175      selectClose.on('click', function() {
176        selectWrap.removeClass('is-open');
177        $('body').removeClass('view-es');
178        menu.css({'bottom': 0+'px'});
179      });
180
181      var clickEventType=((window.ontouchstart!==null)?'click':'touchstart');
182      $('body').on(clickEventType, function(e){
183        if( !$(e.target).closest('.is-open').length ){
184          selectWrap.removeClass('is-open');
185          if (selectWrap.hasClass('is-open')) {
186            selectWrap.each(function(){
187              $(this).removeClass('is-open');
188              if ($(window).width() <= 1024) {
189                $('body').removeClass('view-es');
190              }
191            });
192          }
193        }
194      });
195      $('.sw-overlay, .overlay').on('click', function() {
196        if ($(window).width() <= 1024) {
197          $('body').removeClass('view-es');
198          menu.css({'bottom': 0+'px'});
199        }
200      });
201    });
202  }
203	esSelect('.select-wrap');
204});
205
206function removeArrayDuplicates(array) {
207	var exist = {}, 
208		result = [];
209
210	for (var i = 0, l = array.length; i < l; i++) {
211		var tmp = array[i];
212
213		if (!exist[tmp]) {
214			exist[tmp] = true;
215			result.push(tmp);
216		}
217	}
218
219	return result;
220}

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.