1;(function($){ 2 // accordion 3 $.extend({ 4 toggleAccordion : function(){ 5 var $acorBox = $(".js-AcorBox"); 6 var $acorBtn = $(".js-AcorBtn"); 7 $acorBox.not(".is-show").find(".js-AcorDetail").css("display","none"); 8 $acorBtn.click(function(e){ 9 var $this = $(this); 10 var acorBox = $acorBox.has($this); 11 var acorDetail = acorBox.find(".js-AcorDetail"); 12 if(!(acorDetail.is(":animated"))){ 13 if(!(acorBox.hasClass("is-show"))){ 14 acorBox.removeClass("is-hide").addClass("is-show"); 15 acorDetail.slideDown(500,function(){ 16 }); 17 } else { 18 acorDetail.slideUp(500,function(){ 19 acorBox.removeClass("is-show").addClass("is-hide"); 20 }); 21 } 22 } 23 }); 24 } 25 }); 26 27 // flowPosition (jQueryãã©ã°ã¤ã³) 28 // ããã¼ã®ç¾å¨å°ã表示ãã 29 $.fn['flowPosition'] = function() { 30 // è¨å®ï¼ããã¼å ±éï¼ 31 var flowButtonCurrentClass = 'position__item--current'; // ç¾å¨ã®ããã¼ã¯ã©ã¹å 32 var tpl = { // ãã³ãã¬ã¼ã 33 flow: '<ol class="flow__position position">', 34 flowButton: '<li class="position__item"><span class="position__dot">' 35 }; 36 37 /** 38 * DOMè¦ç´ ãè¨å®ãã 39 * @param {Object} $el è¨å®ãããDOMè¦ç´ 40 */ 41 var setElements = function ($el) { 42 $el.$sliderList = $el.$slider.find('.flow__list'); // ããã¼ã¹ã©ã¤ãã¼ã¨ãªã¢è¦ç´ 43 $el.$sliderItems = $el.$slider.find('.flow__item'); // ããã¼ã¢ã¤ãã è¦ç´ 44 }; 45 46 /** 47 * åæ å ±ãè¨å®ãã 48 * @param {Object} $el è¨å®ãããDOMè¦ç´ 49 * @param {Object} settings è¨å®ãããæ å ± 50 */ 51 var setFlowWidth = function ($el, settings) { 52 settings.sliderWidth = Math.ceil($el.$slider.outerWidth()); // ããã¼ã¹ã©ã¤ãã¼ã®å å å¹ 53 settings.threshold = settings.sliderWidth / 2; // ç¾å¨ã®ããã¼ãç¹å®ããé¾å¤ 54 }; 55 56 /** 57 * ããã¼ã¢ã¤ãã ã®ä½ç½®æ å ±ãè¨å®ãã 58 * @param {Object} $el è¨å®ãããDOMè¦ç´ 59 * @param {Object} settings è¨å®ãããæ å ± 60 */ 61 var setCurrentPositionMapping = function ($el, settings) { 62 var slideItemsMapping = settings.slideItemsMapping = []; 63 var sliderItemsPos = 0; 64 65 $el.$sliderItems.each(function(i, v) { 66 sliderItemsPos += Math.floor($(this).outerWidth(true)); 67 slideItemsMapping.push(sliderItemsPos); 68 }); 69 }; 70 71 /** 72 * ç¾å¨ä½ç½®è¦ç´ ã表示ãã 73 * @param {Object} $el è¨å®ãããDOMè¦ç´ 74 * @param {Object} tpl ç¾å¨ä½ç½®è¦ç´ ã®ãã³ãã¬ã¼ã 75 */ 76 var addCurrentPositionElement = function ($el, tpl) { 77 var flowButtons = ''; 78 for (var i = 0, l = $el.$sliderItems.length; i < l; i++) flowButtons += tpl.flowButton; 79 $(tpl.flow).append(flowButtons).appendTo($el.$slider); 80 $el.$flowButtons = $el.$slider.find('.position__item'); 81 }; 82 83 /** 84 * ç¾å¨ä½ç½®è¡¨ç¤ºãæ´æ°ãã 85 * @param {jQueryObject} $target 86 */ 87 var updateCurrentPositionDisplay = function ($target) { 88 $target.siblings().removeClass(flowButtonCurrentClass); 89 $target.addClass(flowButtonCurrentClass) 90 }; 91 92 /** 93 * 横ã¹ã¯ãã¼ã«ç£è¦ 94 * @param {Object} $el è¨å®ãããDOMè¦ç´ 95 * @param {Object} settings è¨å®ãããæ å ± 96 */ 97 var attachScrollEvent = function ($el, settings) { 98 $el.$sliderList.on('scroll', function(e) { 99 var threshold = settings.threshold; 100 var slideItemsMapping = settings.slideItemsMapping; 101 var sliderWidth = settings.sliderWidth; 102 var scrollPos = Math.ceil($(this).scrollLeft()); 103 var index; 104 105 // ç¾å¨ã®ããã¼å¤å® 106 for (var i = 0, l = slideItemsMapping.length; i < l; i++) { 107 // å é 108 if (0 === scrollPos) { 109 index = 0; 110 break; 111 // æ«å°¾ 112 } else if (slideItemsMapping[slideItemsMapping.length - 1] <= scrollPos + sliderWidth) { 113 index = slideItemsMapping.length - 1; 114 break; 115 // ããä»¥å¤ 116 } else if (slideItemsMapping[i] > scrollPos + threshold) { 117 index = i; 118 break; 119 } 120 } 121 // ç¾å¨ä½ç½®è¡¨ç¤ºãæ´æ°ãã 122 updateCurrentPositionDisplay($el.$flowButtons.eq(index)); 123 }).trigger('scroll'); 124 }; 125 126 /** 127 * ããã¼è¦ç´ å¹ ç£è¦ 128 * @param {Object} $el è¨å®ãããDOMè¦ç´ 129 * @param {Object} settings è¨å®æ å ± 130 */ 131 var attachResizeEvent = function ($el, settings) { 132 $(window).on('resize', function(e) { 133 // ããã¼è¦ç´ å¹ ãè¨å®ãã 134 setFlowWidth($el, settings); 135 // ããã¼ã¢ã¤ãã ã®ä½ç½®æ å ±ãè¨å®ãã 136 setCurrentPositionMapping($el, settings); 137 // ç¾å¨ã®ä½ç½®ãæ´æ° 138 $el.$sliderList.trigger('scroll'); 139 }); 140 } 141 142 /** 143 * å®è¡å¦ç 144 */ 145 return $(this).each(function(i, v) { 146 // è¨å®ï¼ããã¼åå¥ï¼ 147 var settings = { 148 slideItemsMapping: [], // åããã¼ã®éå§ä½ç½® 149 sliderWidth: 0, // ããã¼ã¹ã©ã¤ãã¼ã®å å ããå¹
150 threshold: 0 // é¾å¤ï¼ç¾å¨ã®ããã¼ãç¹å®ããããã®ããã¼ã¹ã©ã¤ãã¼è¡¨ç¤ºå¹ ã®å·¦ããã®è·é¢ï¼ 151 }; 152 153 var $el = { 154 $slider: $(this).find('.flow__detail'), // ãã©ã°ã¤ã³èµ·ç¹è¦ç´ 155 $sliderList: null, // ããã¼ã¹ã©ã¤ãã¼ã¨ãªã¢è¦ç´ 156 $sliderItems: null, // ããã¼ã¢ã¤ãã è¦ç´ 157 $flowButtons: null // ããã¼ã®ç¾å¨å°è¡¨ç¤ºè¦ç´ 158 }; 159 160 // DOMè¦ç´ ãè¨å®ãã 161 setElements($el); 162 163 // ããã¼è¦ç´ å¹ ãè¨å®ãã 164 setFlowWidth($el, settings); 165 166 // ããã¼ã¢ã¤ãã ã®ä½ç½®æ å ±ãè¨å®ãã 167 setCurrentPositionMapping($el, settings); 168 169 // ç¾å¨ä½ç½®è¦ç´ ã表示ãã 170 addCurrentPositionElement($el, tpl); 171 172 // 横ã¹ã¯ãã¼ã«ç£è¦ 173 attachScrollEvent($el, settings); 174 175 // ããã¼è¦ç´ å¹ ç£è¦ 176 attachResizeEvent($el, settings); 177 }); 178 }; 179 180 $(function() { 181 // accordion 182 $.toggleAccordion(); 183 184 // èµ·å 185 // .flowã«ã.flow--excludePositionãä»ä¸ãããã¨ã§é©ç¨ããé¤å¤ãã 186 if ($('.flow').length) $('.flow:not(.flow--excludePosition)').flowPosition(); 187 188 // ã¹ã¯ãã¼ã«ãã³ã 189 $(window).on('load resize', function(){ 190 if (window.matchMedia('(max-width: 750px)').matches) { 191 new ScrollHint('.js-scrollHint', { 192 i18n: { 193 scrollable: 'ã¹ã¯ãã¼ã«ã§ãã¾ã' 194 } 195 }); 196 } 197 }); 198 }); 199 200 /** 201 * åèã«ãªãã¾ããããã¿ã³ 202 */ 203 $('.js-helpful').on('click', function(e){ 204 e.preventDefault(); 205 $('.js-helpfulThanks').show(); 206 }) 207})(jQuery);
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.