การทำ 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

ตัวอย่าง









คุณอาจสนใจ
แก้ปัญหา run ภาษาไทย ของ tis620 บน utf-8 ไม่ได้
Tung (44,309 - 19 ธ.ค. 50)
เลือกซื้อพาวเวอร์ซัพพลาย อย่างไรดีนะ
สายลม (16,768 - 12 เม.ย. 51)
สำรวจให้แน่ใจว่าใน flash drive มีไวรัสอยู่หรือไม่?
junko (30,032 - 15 มี.ค. 51)
การใช้ทาสก์เพน(Task Pane)
นายนุก (29,372 - 07 มี.ค. 51)
การติดตั้ง Microsoft Visual C++ 6.0
Mr.POP (39,223 - 26 พ.ย. 50)
การสร้าง Webboard ด้วย Dreamweaver 8 (ตอนที่ 4)
first (99,289 - 17 ม.ค. 51)
การทำให้เอกสาร Word บันทึกโดยอัตโนมัติ
P'nutthapon (21,455 - 13 ม.ค. 50)
การเปลี่ยนสีภาพเฉพาะจุด
Mr.GuruZ (85,563 - 04 มิ.ย. 49)