cc_huu_tools_bp_20081024.load();
これで、初期化処理やブログパーツのhtml出力が行われます。
以上で「大好きマウスくん」のソースコード解説を終わります。
ありがとうございます。
自作のプログラムを、JavaScriptのサンプルとしてご紹介しています。
cc_huu_tools_bp_20081024.adjustLang = function(orgLang, kind) {
var returnLang = 'en';
switch (kind) {
case 'widget':
switch (orgLang) {
case 'ja':
case 'zh':
returnLang = orgLang;
break;
}
break;
case 'site':
default:
switch (orgLang) {
case 'ja':
returnLang = orgLang;
break;
}
break;
}
return returnLang;
};
af Afrikaans
sq Albanian
ar-sa Arabic(Saudi Arabia)
ar-iq Arabic(Iraq)
ar-eg Arabic(Egypt)
ar-ly Arabic(Libya)
ar-dz Arabic(Algeria)
ar-ma Arabic(Morocco)
ar-tn Arabic(Tunisia)
ar-om Arabic(Oman)
ar-ye Arabic(Yemen)
ar-sy Arabic(Syria)
ar-jo Arabic(Jordan)
ar-lb Arabic(Lebanon)
ar-kw Arabic(Kuwait)
ar-ae Arabic(U.A.E.)
ar-bh Arabic(Bahrain)
ar-qa Arabic(Qatar)
eu Basque
bg Bulgarian
be Belarusian
ca Catalan
zh-tw Chinese(Taiwan)
zh-cn Chinese(PRC)
zh-hk Chinese(Hong Kong)
zh-sg Chinese(Singapore)
hr Croatian
cs Czech
da Danish
nl Dutch(Standard)
nl-be Dutch(Belgian)
en English
en-us English(United States)
en-gb English(British)
en-au English(Australian)
en-ca English(Canadian)
en-nz English(New Zealand)
en-ie English(Ireland)
en-za English(South Africa)
en-jm English(Jamaica)
en English(Caribbean)
en-bz English(Belize)
en-tt English(Trinidad)
et Estonian
fo Faeroese
fa Farsi
fi Finnish
fr French(Standard)
fr-be French(Belgian)
fr-ca French(Canadian)
fr-ch French(Swiss)
fr-lu French(Luxembourg)
gd Gaelic(Scots)
gd-ie Gaelic(Irish)
de German(Standard)
de-ch German(Swiss)
de-at German(Austrian)
de-lu German(Luxembourg)
de-li German(Liechtenstein)
el Greek
he Hebrew
hi Hindi
hu Hungarian
is Icelandic
in Indonesian
it Italian(Standard)
it-ch Italian(Swiss)
ja Japanese
ko Korean
ko Korean(Johab)
lv Latvian
lt Lithuanian
mk Macedonian
ms Malaysian
mt Maltese
no Norwegian(Bokmal)
no Norwegian(Nynorsk)
pl Polish
pt-br Portuguese(Brazilian)
pt Portuguese(Standard)
rm Rhaeto-Romanic
ro Romanian
ro-mo Romanian(Moldavia)
ru Russian
ru-mo Russian(Moldavia)
sz Sami(Lappish)
sr Serbian(Cyrillic)
sr Serbian(Latin)
sk Slovak
sl Slovenian
sb Sorbian
es Spanish(Spain - Traditional Sort)
es-mx Spanish(Mexican)
es Spanish(Spain - Modern Sort)
es-gt Spanish(Guatemala)
es-cr Spanish(Costa Rica)
es-pa Spanish(Panama)
es-do Spanish(Dominican Republic)
es-ve Spanish(Venezuela)
es-co Spanish(Colombia)
es-pe Spanish(Peru)
es-ar Spanish(Argentina)
es-ec Spanish(Ecuador)
es-cl Spanish(Chile)
es-uy Spanish(Uruguay)
es-py Spanish(Paraguay)
es-bo Spanish(Bolivia)
es-sv Spanish(El Salvador)
es-hn Spanish(Honduras)
es-ni Spanish(Nicaragua)
es-pr Spanish(Puerto Rico)
sx Sutu
sv Swedish
sv-fi Swedish(Finland)
th Thai
ts Tsonga
tn Tswana
tr Turkish
uk Ukrainian
ur Urdu
ve Venda
vi Vietnamese
xh Xhosa
ji Yiddish
zu Zulu
cc_huu_tools_bp_20081024.browserLang = function(defaultLang) {
if (navigator.userLanguage) {
return navigator.userLanguage.substr(0,2);
} else if (navigator.browserLanguage) {
return navigator.browserLanguage.substr(0,2);
} else if (navigator.language) {
return navigator.language.substr(0,2);
} else {
return defaultLang;
}
};
cc_huu_tools_bp_20081024.calcDistance = function(x1,y1,x2,y2) {
var a, b, d;
a = x1 - x2;
b = y1 - y2;
d = Math.sqrt(Math.pow(a,2) + Math.pow(b,2));
return d;
};
cc_huu_tools_bp_20081024.getX = function(e) {
var x = 0;
while(e) {
x += e.offsetLeft;
e = e.offsetParent;
}
return x;
};
cc_huu_tools_bp_20081024.getY = function(e) {
var y = 0;
while(e) {
y += e.offsetTop;
e = e.offsetParent;
}
return y;
};
cc_huu_tools_bp_20081024.getHorizontalScroll = function() {
if (window.innerWidth) {
// All browsers but IE
return window.pageXOffset;
} else if (document.documentElement && document.documentElement.clientWidth) {
// IE6 when there is a DOCTYPE
return document.documentElement.scrollLeft;
} else if (document.body.clientWidth) {
// IE4, IE5, and IE6 without a DOCTYPE
return document.body.scrollLeft;
}
};
cc_huu_tools_bp_20081024.getVerticalScroll = function() {
if (window.innerWidth) {
// All browsers but IE
return window.pageYOffset;
} else if (document.documentElement && document.documentElement.clientWidth) {
// IE6 when there is a DOCTYPE
return document.documentElement.scrollTop;
} else if (document.body.clientWidth) {
// IE4, IE5, and IE6 without a DOCTYPE
return document.body.scrollTop;
}
};
cc_huu_tools_bp_20081024.interrupt500ms = function() {
var obj = cc_huu_tools_bp_20081024;
if (obj.buttonEnableCnt > 0) {
obj.buttonEnableCnt--;
if (obj.buttonEnableCnt == 0) {
document.getElementById('clickButtonId').disabled = false;
}
}
if (!obj.buttonOnOffFlag) {
return;
}
if (Math.random() < obj.move.probability) {
obj.command = 'move';
} else {
obj.command = 'stop';
}
};
cc_huu_tools_bp_20081024.interrupt50ms = function() {
var obj = cc_huu_tools_bp_20081024;
if (!obj.buttonOnOffFlag) {
return;
}
if (obj.command != 'move') {
return;
}
var x, y;
var tempX, tempY;
var angle;
x = parseInt(obj.imageImg.style.left.replace('px',''));
y = parseInt(obj.imageImg.style.top.replace('px',''));
tempX = obj.mousePosition.x;
tempY = obj.mousePosition.y;
tempX -= x + obj.imageSize.width / 2;
tempY -= y + obj.imageSize.height / 2;
if (obj.calcDistance(0,0,tempX,tempY) < 4) {
obj.imageImg.style.left = obj.mousePosition.x - obj.imageSize.width / 2 + 'px';
obj.imageImg.style.top = obj.mousePosition.y - obj.imageSize.height / 2 + 'px';
return;
}
angle = Math.atan2(tempX,tempY);
if (angle < 0) {
angle = Math.PI + (Math.PI + angle);
}
angle = Math.atan2(tempY,tempX);
x += obj.move.step * Math.sin(angle);
y += obj.move.step * Math.cos(angle);
x = parseInt(x + 0.5);
y = parseInt(y + 0.5);
obj.imageImg.style.left = x + 'px';
obj.imageImg.style.top = y + 'px';
};
cc_huu_tools_bp_20081024.buttonClick = function() {
var obj = cc_huu_tools_bp_20081024;
if (!obj.buttonOnOffFlag) {
var x, y;
if (!obj.imageImg) {
obj.imageImg = document.getElementById('imageImgId');
obj.explanationImg = document.getElementById('explanationImgId');
}
x = obj.getX(obj.imageImg);
y = obj.getY(obj.imageImg);
if (!obj.parentNode) {
obj.parentNode = obj.imageImg.parentNode;
}
document.getElementsByTagName('body')[0].appendChild(obj.imageImg);
obj.imageImg.style.position = "absolute";
obj.imageImg.style.left = x + 'px';
obj.imageImg.style.top = y + 'px';
obj.buttonOnOffFlag = true;
obj.explanationImg.src =
obj.explanationImageFileName2 + obj.lang.widget + obj.explanationImageFileExtension;
document.getElementById('clickButtonId').innerHTML = obj.buttonName.stop;
} else {
obj.imageImg.style.position = "relative";
obj.imageImg.style.left = '';
obj.imageImg.style.top = '';
obj.parentNode.insertBefore(
obj.imageImg, obj.explanationImg);
obj.buttonOnOffFlag = false;
obj.explanationImg.src =
obj.explanationImageFileName1 + obj.lang.widget + obj.explanationImageFileExtension;
document.getElementById('clickButtonId').innerHTML = obj.buttonName.start;
}
};
cc_huu_tools_bp_20081024.processMouseMove = function(e) {
var obj = cc_huu_tools_bp_20081024;
if (!e) {
e = window.event;
}
obj.mousePosition.x =
e.clientX + obj.getHorizontalScroll();
obj.mousePosition.y =
e.clientY + obj.getVerticalScroll();
};
cc_huu_tools_bp_20081024.load = function() {
var obj = cc_huu_tools_bp_20081024;
var i;
var imageUrl;
var language;
obj.lang.widget = obj.adjustLang(obj.browserLang(obj.lang.widget), 'widget');
obj.lang.site = obj.adjustLang(obj.browserLang(obj.lang.site), 'site');
for (i=0;i<document.getElementsByTagName("script").length;i++) {
if (document.getElementsByTagName("script")[i].src.indexOf(obj.url) >= 0) {
imageUrl =
document.getElementsByTagName("script")[i].src.match(/\?image=(\S{0,200})/)[1];
if (imageUrl) {
obj.imageFileName = imageUrl;
}
}
}
document.write('<img src="' + obj.imageFileName + '" id="imageImgId" ');
document.write(' height="' + obj.imageSize.height + '" ');
document.write(' width="' + obj.imageSize.width + '" >');
document.write('<img src="' + obj.explanationImageFileName1 +
obj.lang.widget + obj.explanationImageFileExtension + '" id="explanationImgId" ');
document.write(' height="' + obj.explanationSize.height + '" ');
document.write(' width="' + obj.explanationSize.width + '" >');
document.write('
');
switch (obj.lang.site) {
case 'ja':
document.write('<a href="' + obj.poweredBy + '" id="poweredByLinkId" target="_blank" >');
break;
default:
document.write('<a href="' + obj.poweredBy + obj.lang.site + '/" id="poweredByLinkId" target="_blank" >');
break;
}
document.write('Powered by Hidaa> ');
document.write('<button type="button" id="clickButtonId" disabled ');
document.write(' onclick="cc_huu_tools_bp_20081024.buttonClick()" >');
document.write(obj.buttonName.start + '');
document.getElementById('poweredByLinkId').style.fontSize = 'small';
if (document.addEventListener) {
document.addEventListener('mousemove', obj.processMouseMove, false);
} else if (document.attachEvent) {
document.attachEvent('onmousemove', obj.processMouseMove);
}
setInterval(obj.interrupt50ms,50);
setInterval(obj.interrupt500ms,500);
};
var cc_huu_tools_bp_20081024 = {};
cc_huu_tools_bp_20081024.version = '1.2.0';
cc_huu_tools_bp_20081024.poweredBy = 'http://tools.huu.cc/mouse/';
cc_huu_tools_bp_20081024.url = 'http://tools.huu.cc/mouse/mouse.js?image=';
cc_huu_tools_bp_20081024.imageFileName = 'http://tools.huu.cc/mouse/mouse.gif';
cc_huu_tools_bp_20081024.explanationImageFileName1 =
'http://tools.huu.cc/mouse/explanation1_';
cc_huu_tools_bp_20081024.explanationImageFileName2 =
'http://tools.huu.cc/mouse/explanation2_';
cc_huu_tools_bp_20081024.explanationImageFileExtension = '.gif'
cc_huu_tools_bp_20081024.mousePosition = {x: 0, y: 0};
cc_huu_tools_bp_20081024.imageImg;
cc_huu_tools_bp_20081024.imageSize = {height: 64, width: 64};
cc_huu_tools_bp_20081024.explanationImg;
cc_huu_tools_bp_20081024.explanationSize = {height: 64, width: 156};
cc_huu_tools_bp_20081024.parentNode;
cc_huu_tools_bp_20081024.buttonOnOffFlag = false;
cc_huu_tools_bp_20081024.buttonEnableCnt = 7;
cc_huu_tools_bp_20081024.buttonName = {start: 'Start', stop: 'Stop'};
cc_huu_tools_bp_20081024.command = 'stop';
cc_huu_tools_bp_20081024.move = {step: 4, probability:0.5};
cc_huu_tools_bp_20081024.lang = {widget:'en', site: 'en'};