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