การทำ Analog Clock โดยใช้ Java Script จัดทำโดย : เฟริสท์ พิมพ์
 Untitled Document

บทความนี้จะเป็นการทำนาฬิกา Analog เอามาไว้ที่หน้าเว็บของเรานะครับโดยไม่ต้องพึ่ง Flash กันนะครับ

ขั้นตอน 1:แทรก stylesheet และ Script นี้เอาไปวางที่ Tag <head> </head>

<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v" />
<object id="VMLRender" codebase="vgx.dll" classid="CLSID:10072CEC-8CC1-11D1-986E-00A0C955B42E">
</object>
<style>
<!--
v\:* { behavior: url(#VMLRender); }
-->
</style>
<script language="JavaScript1.2">

var clocksize=135
//กำหนดขนาดของนาฬิกา

function updatePointers() {
var now = new Date();

secondsPointer.style.rotation = now.getSeconds() * 6;
minutesPointer.style.rotation = now.getMinutes() * 6 + now.getSeconds() / 10;
hoursPointer.style.rotation = now.getHours() * 30 + now.getMinutes() / 2;
}

if (document.all&&window.print){
window.attachEvent("onload", initVMLClock);
window.attachEvent("onresize", resizeObjects);
}

function initVMLClock() {
resizeObjects();
updatePointers();
window.setInterval("updatePointers()", 1000);

}

function resizeObjects() {
var size = Math.min(clocksize, clocksize);
clock.style.pixelWidth = size - 2*(size * 0.045);
clock.style.pixelHeight = size - 2*(size * 0.045);

clock.childNodes.item(0).childNodes.item(0).weight = size * 0.01;

secondsPointer.childNodes.item(0).childNodes.item(0).weight = size * 0.001;
minutesPointer.childNodes.item(0).childNodes.item(0).weight = size * 0.002;
hoursPointer.childNodes.item(0).childNodes.item(0).weight = size * 0.004;

}

function toggle(sId) {
var el = document.getElementById(sId);

el.style.display = (el.style.display == "none") ? "block" : "none";
}

//-->
</script>

ขั้นตอน 2: Copy Code ไปวางที่ Tag <body> </body>ในหน้างานของคุณ

<v:group id="clock" coordsize="100 100" style="position: relative;">
<v:oval style="width: 100%; height: 100%">
<v:stroke weight="10px" color="gray"/>
<!-- I removed this gradient fill to match the WebFX color theme
<v:fill type="gradient" color="white" color2="#eeeeff" angle="225deg"/>
-->
</v:oval>

<v:group id="secondsPointer" style="width: 100%; height: 100%; position: absolute; top: 0px; left: 0px;">
<v:line from="50,50" to="50,5">
<v:stroke weight="2px" endcap="round" color="navy"/>
</v:line>
</v:group>

<v:group id="minutesPointer" style="width: 100%; height: 100%; position: absolute; top: 0px; left: 0px;">
<v:line from="50,50" to="50,8">
<v:stroke weight="4px" endcap="round" color="navy"/>
</v:line>
</v:group>

<v:group id="hoursPointer" style="width: 100%; height: 100%; position: absolute; top: 0px; left: 0px;">
<v:line from="50,50" to="50,18">
<v:stroke weight="7px" endcap="round" color="navy"/>
</v:line>
</v:group>

</v:group>

ข้อมูลจาก : http://www.dynamicdrive.com/dynamicindex6/analog2.htm

ตัวอย่าง









คุณอาจสนใจ
การทำตัวอักษรเลนส์นูน
Black-Hawk (64,216 - 21 ม.ค. 51)
เปลี่ยนสีตารางเมื่อนำ Mouse ไปชี้ (MX)
Mr.GuruZ (53,506 - 04 มิ.ย. 49)
การทำเส้นผม จากโปรแกรม Illustrator 10
langjuko (88,529 - 28 ต.ค. 51)
การปรับแต่งรอยมาร์คเพื่อการตัด(ต่อจากเรื่องนามบัตร)
Lek (44,395 - 27 มิ.ย. 49)
การสร้างแบบทดสอบเข้ารหัส MD5
Mr.GuruZ (35,639 - 03 มิ.ย. 49)
Block ip คนมาป่วนเว็บไม่ให้เข้าเว็บ
Zerohate (37,046 - 21 พ.ย. 50)
การเข้ารหัส base64_encode และการถอดรหัส base64_decode
Zerohate (32,837 - 23 ธ.ค. 50)
รูปแบบความสัมพันฐ์
Mr.N (25,963 - 30 เม.ย. 50)