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

ตัวอย่าง









คุณอาจสนใจ
เทคนิคการเก็บรูปภาพลงฐานข้อมูล MySQL
Mr.GuruZ (87,043 - 03 มิ.ย. 49)
เปิดไฟล์ MDB ได้แล้วแต่ไม่สามารถใช้งานไฟล์ได
นายจืด (21,909 - 12 มี.ค. 51)
การแทรกเลขหน้าอย่างรวดเร็ว
สายลม (22,972 - 13 ม.ค. 50)
การใช้งาน ScrollBar Component
Mr.GuruZ (53,873 - 04 มิ.ย. 49)
การสร้างสี Gradient และจัดเก็บลงใน Swatches
Mr.GuruZ (50,963 - 27 มิ.ย. 49)
การหาค่าสูงสุด (MAX) จากฐานข้อมูล MySQL
Mr.GuruZ (50,572 - 02 ต.ค. 49)
การสร้างแผนผัง Organization Chat
nut (30,964 - 08 มี.ค. 51)
การจัดระเบียบ code
Mr.GuruZ (55,804 - 31 มี.ค. 50)