1/* 2 * yuga.js 0.7.1 - åªé ãªWebå¶ä½ã®ããã®JS 3 * 4 * Copyright (c) 2009 Kyosuke Nakamura (kyosuke.jp) 5 * Licensed under the MIT License: 6 * http://www.opensource.org/licenses/mit-license.php 7 * 8 * Since: 2006-10-30 9 * Modified: 2009-01-27 10 * 11 * jQuery 1.3.1 12 * ThickBox 3.1 13 */ 14 15/* 16 * [ä½¿ç¨æ¹æ³] XHTMLã®headè¦ç´ å ã§æ¬¡ã®ããã«èªã¿è¾¼ã¿ã¾ãã 17 18<link rel="stylesheet" href="css/thickbox.css" type="text/css" media="screen" /> 19<script type="text/javascript" src="js/jquery.js"></script> 20<script type="text/javascript" src="js/thickbox.js"></script> 21<script type="text/javascript" src="js/yuga.js" charset="utf-8"></script> 22 23 */ 24 25(function($) { 26 27 $(function() { 28 //$.yuga.selflink(); 29 $.yuga.rollover(); 30 $.yuga.externalLink(); 31 $.yuga.thickbox(); 32 //$.yuga.scroll(); 33 //$.yuga.tab(); 34 //$.yuga.stripe(); 35 //$.yuga.css3class(); 36 37 38 $('.accHead').next().hide(); 39 40 $('.accHead').click(function(){ 41 if($(this).hasClass('active')){ 42 $(this).removeClass('active').next().slideUp(); 43 }else{ 44 $(this).addClass('active').next().slideToggle(); 45 } 46 }); 47 48 }); 49 50 //--------------------------------------------------------------------- 51 52 $.yuga = { 53 // URIãè§£æãããªãã¸ã§ã¯ããè¿ãfunction 54 Uri: function(path){ 55 var self = this; 56 this.originalPath = path; 57 //絶対ãã¹ãåå¾ 58 this.absolutePath = (function(){ 59 var e = document.createElement('span'); 60 e.innerHTML = '<a href="' + path + '" />'; 61 return e.firstChild.href; 62 })(); 63 //絶対ãã¹ãåè§£ 64 var fields = {'schema' : 2, 'username' : 5, 'password' : 6, 'host' : 7, 'path' : 9, 'query' : 10, 'fragment' : 11}; 65 var r = /^((\w+):)?(\/\/)?((\w+):?(\w+)?@)?([^\/\?:]+):?(\d+)?(\/?[^\?#]+)?\??([^#]+)?#?(\w*)/.exec(this.absolutePath); 66 for (var field in fields) { 67 this[field] = r[fields[field]]; 68 } 69 this.querys = {}; 70 if(this.query){ 71 $.each(self.query.split('&'), function(){ 72 var a = this.split('='); 73 if (a.length == 2) self.querys[a[0]] = a[1]; 74 }); 75 } 76 }, 77 //ç¾å¨ã®ãã¼ã¸ã¨è¦ªãã£ã¬ã¯ããªã¸ã®ãªã³ã¯ 78 selflink: function (options) { 79 var c = $.extend({ 80 selfLinkAreaSelector:'body', 81 selfLinkClass:'current', 82 parentsLinkClass:'parentsLink', 83 postfix: '_cr', 84 changeImgSelf:true, 85 changeImgParents:true 86 }, options); 87 $(c.selfLinkAreaSelector+((c.selfLinkAreaSelector)?' ':'')+'a[href]').each(function(){ 88 var href = new $.yuga.Uri(this.getAttribute('href')); 89 var setImgFlg = false; 90 if ((href.absolutePath == location.href) && !href.fragment) { 91 //åãææ¸ã«ãªã³ã¯ 92 $(this).addClass(c.selfLinkClass); 93 setImgFlg = c.changeImgSelf; 94 } else if (0 <= location.href.search(href.absolutePath)) { 95 //親ãã£ã¬ã¯ããªãªã³ã¯ 96 $(this).addClass(c.parentsLinkClass); 97 setImgFlg = c.changeImgParents; 98 } 99 if (setImgFlg){ 100 //imgè¦ç´ ãå«ã¾ãã¦ãããç¾å¨ç¨ç»åï¼_crï¼ã«è¨å® 101 $(this).find('img').each(function(){ 102 this.originalSrc = $(this).attr('src'); 103 this.currentSrc = this.originalSrc.replace(new RegExp('('+c.postfix+')?(\.gif|\.jpg|\.png)$'), c.postfix+"$2"); 104 $(this).attr('src',this.currentSrc); 105 }); 106 } 107 }); 108 }, 109 //ãã¼ã«ãªã¼ãã¼ 110 rollover: function(options) { 111 var c = $.extend({ 112 hoverSelector: '.btn, .allbtn img', 113 groupSelector: '.btngroup', 114 postfix: '_on' 115 }, options); 116 //ãã¼ã«ãªã¼ãã¼ãããã¼ãã®åæå 117 var rolloverImgs = $(c.hoverSelector).filter(isNotCurrent); 118 rolloverImgs.each(function(){ 119 this.originalSrc = $(this).attr('src'); 120 this.rolloverSrc = this.originalSrc.replace(new RegExp('('+c.postfix+')?(\.gif|\.jpg|\.png)$'), c.postfix+"$2"); 121 this.rolloverImg = new Image; 122 this.rolloverImg.src = this.rolloverSrc; 123 }); 124 //ã°ã«ã¼ãå ã®imgè¦ç´ ãæå®ããã»ã¬ã¯ã¿çæ 125 var groupingImgs = $(c.groupSelector).find('img').filter(isRolloverImg); 126 127 //é常ãã¼ã«ãªã¼ãã¼ 128 rolloverImgs.not(groupingImgs).hover(function(){ 129 $(this).attr('src',this.rolloverSrc); 130 },function(){ 131 $(this).attr('src',this.originalSrc); 132 }); 133 //ã°ã«ã¼ãåããããã¼ã«ãªã¼ãã¼ 134 $(c.groupSelector).hover(function(){ 135 $(this).find('img').filter(isRolloverImg).each(function(){ 136 $(this).attr('src',this.rolloverSrc); 137 }); 138 },function(){ 139 $(this).find('img').filter(isRolloverImg).each(function(){ 140 $(this).attr('src',this.originalSrc); 141 }); 142 }); 143 //ãã£ã«ã¿ç¨function 144 function isNotCurrent(i){ 145 return Boolean(!this.currentSrc); 146 } 147 function isRolloverImg(i){ 148 return Boolean(this.rolloverSrc); 149 } 150 151 }, 152 //å¤é¨ãªã³ã¯ã¯å¥ã¦ã¤ã³ãã¦ãè¨å® 153 externalLink: function(options) { 154 var c = $.extend({ 155 windowOpen:true, 156 externalClass: 'externalLink', 157 addIconSrc: '' 158 }, options); 159 var uri = new $.yuga.Uri(location.href); 160 var e = $('a[href^="http://"],a[href^="https://"]').not('a[href^="' + uri.schema + '://' + uri.host + '/' + '"]'); 161 if (c.windowOpen) { 162 e.click(function(){ 163 window.open(this.href, '_blank'); 164 return false;
165 }); 166 } 167 if (c.addIconSrc) e.not(':has(img)').after($('<img src="'+c.addIconSrc+'" class="externalIcon" />')); 168 e.addClass(c.externalClass); 169 }, 170 //ç»åã¸ç´ãªã³ã¯ããã¨thickboxã§è¡¨ç¤º(thickbox.jså©ç¨) 171 thickbox: function() { 172 try { 173 tb_init('a[href$=".jpg"]:not(.thickbox, a[href*="?"]), a[href$=".gif"][href!="?"]:not(.thickbox, a[href*="?"]), a[href$=".png"][href!="?"]:not(.thickbox, a[href*="?"]), a[href$=".jpeg"][href!="?"]:not(.thickbox, a[href*="?"])'); 174 } catch(e) { 175 } 176 }, 177 //ãã¼ã¸å ãªã³ã¯ã¯ããããã¹ã¯ãã¼ã« 178 scroll: function(options) { 179 //ããã¥ã¡ã³ãã®ã¹ã¯ãã¼ã«ãå¶å¾¡ãããªãã¸ã§ã¯ã 180 var scroller = (function() { 181 var c = $.extend({ 182 easing:100, 183 step:30, 184 fps:60, 185 fragment:'' 186 }, options); 187 c.ms = Math.floor(1000/c.fps); 188 var timerId; 189 var param = { 190 stepCount:0, 191 startY:0, 192 endY:0, 193 lastY:0 194 }; 195 //ã¹ã¯ãã¼ã«ä¸ã«å®è¡ãããfunction 196 function move() { 197 if (param.stepCount == c.step) { 198 //ã¹ã¯ãã¼ã«çµäºæ 199 setFragment(param.hrefdata.absolutePath); 200 window.scrollTo(getCurrentX(), param.endY); 201 } else if (param.lastY == getCurrentY()) { 202 //é常ã¹ã¯ãã¼ã«æ 203 param.stepCount++; 204 window.scrollTo(getCurrentX(), getEasingY()); 205 param.lastY = getEasingY(); 206 timerId = setTimeout(move, c.ms); 207 } else { 208 //ãã£ã³ã»ã«çºç 209 if (getCurrentY()+getViewportHeight() == getDocumentHeight()) { 210 //ç»é¢ä¸ã®ããã¹ã¯ãã¼ã«çµäº 211 setFragment(param.hrefdata.absolutePath); 212 } 213 } 214 } 215 function setFragment(path){ 216 location.href = path 217 } 218 function getCurrentY() { 219 return document.body.scrollTop || document.documentElement.scrollTop; 220 } 221 function getCurrentX() { 222 return document.body.scrollLeft || document.documentElement.scrollLeft; 223 } 224 function getDocumentHeight(){ 225 return document.documentElement.scrollHeight || document.body.scrollHeight; 226 } 227 function getViewportHeight(){ 228 return (!$.browser.safari && !$.browser.opera) ? document.documentElement.clientHeight || document.body.clientHeight || document.body.scrollHeight : window.innerHeight; 229 } 230 function getEasingY() { 231 return Math.floor(getEasing(param.startY, param.endY, param.stepCount, c.step, c.easing)); 232 } 233 function getEasing(start, end, stepCount, step, easing) { 234 var s = stepCount / step; 235 return (end - start) * (s + easing / (100 * Math.PI) * Math.sin(Math.PI * s)) + start; 236 } 237 return { 238 set: function(options) { 239 this.stop(); 240 if (options.startY == undefined) options.startY = getCurrentY(); 241 param = $.extend(param, options); 242 param.lastY = param.startY; 243 timerId = setTimeout(move, c.ms); 244 }, 245 stop: function(){ 246 clearTimeout(timerId); 247 param.stepCount = 0; 248 } 249 }; 250 })(); 251 $('a[href^=#], area[href^=#]').not('a[href=#], area[href=#]').each(function(){ 252 this.hrefdata = new $.yuga.Uri(this.getAttribute('href')); 253 }).click(function(){ 254 var target = $('#'+this.hrefdata.fragment); 255 if (target.length == 0) target = $('a[name='+this.hrefdata.fragment+']'); 256 if (target.length) { 257 scroller.set({ 258 endY: target.offset().top, 259 hrefdata: this.hrefdata 260 }); 261 return false; 262 } 263 }); 264 }, 265 //ã¿ãæ©è½ 266 tab: function(options) { 267 var c = $.extend({ 268 tabNavSelector:'.tabNav', 269 activeTabClass:'active' 270 }, options); 271 $(c.tabNavSelector).each(function(){ 272 var tabNavList = $(this).find('a[href^=#], area[href^=#]'); 273 var tabBodyList; 274 tabNavList.each(function(){ 275 this.hrefdata = new $.yuga.Uri(this.getAttribute('href')); 276 var selecter = '#'+this.hrefdata.fragment; 277 if (tabBodyList) { 278 tabBodyList = tabBodyList.add(selecter); 279 } else { 280 tabBodyList = $(selecter); 281 } 282 $(this).unbind('click'); 283 $(this).click(function(){ 284 tabNavList.removeClass(c.activeTabClass); 285 $(this).addClass(c.activeTabClass); 286 tabBodyList.hide(); 287 $(selecter).show(); 288 return false;
289 }); 290 }); 291 tabBodyList.hide() 292 tabNavList.filter(':first').trigger('click'); 293 }); 294 }, 295 //奿°ãå¶æ°ãèªå追å 296 stripe: function(options) { 297 var c = $.extend({ 298 oddClass:'odd', 299 evenClass:'even' 300 }, options); 301 $('ul, ol').each(function(){ 302 //JSã§ã¯0ããæ°ããã®ã§evenã¨addãéã«æå® 303 $(this).children('li:odd').addClass(c.evenClass); 304 $(this).children('li:even').addClass(c.oddClass); 305 }); 306 $('table, tbody').each(function(){ 307 $(this).children('tr:odd').addClass(c.evenClass); 308 $(this).children('tr:even').addClass(c.oddClass); 309 }); 310 }, 311 //css3ã®ã¯ã©ã¹ã追å 312 css3class: function() { 313 //:first-child, :last-childãã¯ã©ã¹ã¨ãã¦è¿½å 314 $('body :first-child').addClass('firstChild'); 315 $('body :last-child').addClass('lastChild'); 316 //css3ã®:emptyãã¯ã©ã¹ã¨ãã¦è¿½å 317 $('body :empty').addClass('empty'); 318 } 319 }; 320})(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.