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