وب کدر - آموزش زبان های برنامه نویسی تحت وب

آموزش زبان های برنامه نویسی وب از جمله زبان nodejs و هم چنین زبان های html ، css و جاوااسکریپت برای کاربران مبتدی و حرفه ای!

وب کدر - آموزش زبان های برنامه نویسی تحت وب

آموزش زبان های برنامه نویسی وب از جمله زبان nodejs و هم چنین زبان های html ، css و جاوااسکریپت برای کاربران مبتدی و حرفه ای!

چت-روم-فارسی-موبایل

درود;
به وب کدر خوش اومدین . بهترین سایت ایران برای آموزش زبان های برنامه نویسی وب !! به سوالات شما در اسرع وق پاسخ داده می شود.

طبقه بندی موضوعی

شاید شما در دیگر سایت ها ساعت های عقربه دار یا همان ساعت های آنالوگ را دیده باشید که با استفاده از فلش طراحی شده اند.ولی مشکل اینجاست که فلش صفحات را سنگین می کند و مشکلاتی را برای سایت به وجود می آورد.اما حالا ما می توانیم با استفاده از دستورات html و جاوااسکریپت یک ساعت آنالوگ طراحی کنیم.

ساعت عقربه ای ما شبیه تصویر پایین خواهد بود.

ساعت ساحته شده با html

ما برای ساخت این ساعت از کد canvas در html و یکسری دستورات زبان جاوااسکریپت استفاده می کنیم.

تگ canvas درhtml

تگ canvas یک تگ بسیار مفید و کار آمد در زمینه طراحی گرافیکی سایت ها می باشد.

برای درک بهتر قابلیت ها باید بگویم که از این تگ می توان در طراحی بازی ، اسلایدر ، ساعت و ... استفاده کرد.اگر بتوانید این تگ را آموزش ببینید می توانید صفحات سایت و وبلاگ خود را بسیار جذاب تر از پیش کنید.

تگ canvas می تواند style بگیرد.می تواند اندازه width و height را دارا باشد و همچنین توانایی داشتن id را هم دارد.وقتی که شما یک تگ canvas ایجاد می کنید در حالت عادی چیزی در صفحه ی html نمی بینید.مانند تگ div.ما سعی می کنیم در پست های آینده این تگ را بطور کامل آموزش دهیم اما در این پست تنها کد های ساعت عقربه دار را می گذاریم و چند نکته برای شخصی سازی و تغییر ظاهر آن می گوییم تا به طور نسبی با این تگ آشنا شوید.

کد های ساعت عقربه دار

کد های زیر کد های لازمه برای ایجاد ساعت عقربه دار است.جالب این است که فقط و فقط این کد ها لازم هستند و احتیاجی به تصاویر و استایل دهی نیست.

<html>
<head>
</head>
<body>
    <canvas id="myCanvas" width="300" height="300"style="background:#363636">
    </canvas>
    
    <script>
        var canvas=document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
var radius = canvas.height / 2;
ctx.translate(radius, radius);
radius = radius * 0.90
setInterval(drawClock, 1000);

function drawClock() {
    drawFace(ctx, radius);
    drawNumbers(ctx, radius);
    drawTime(ctx, radius);
}

function drawFace(ctx, radius) {
    var grad;

    ctx.beginPath();
    ctx.arc(0, 0, radius, 0, 2*Math.PI);
    ctx.fillStyle = 'white';
    ctx.fill();

    grad = ctx.createRadialGradient(0,0,radius*0.95, 0,0,radius*1.05);
    grad.addColorStop(0, '#333');
    grad.addColorStop(0.5, 'white');
    grad.addColorStop(1, '#333');
    ctx.strokeStyle = grad;
    ctx.lineWidth = radius*0.1;
    ctx.stroke();

    ctx.beginPath();
    ctx.arc(0, 0, radius*0.1, 0, 2*Math.PI);
    ctx.fillStyle = '#333';
    ctx.fill();
}
function drawNumbers(ctx, radius) {
    var ang;
    var num;
    ctx.font = radius*0.15 + "px arial";
    ctx.textBaseline="middle";
    ctx.textAlign="center";
    for(num= 1; num < 13; num++){
        ang = num * Math.PI / 6;
        ctx.rotate(ang);
        ctx.translate(0, -radius*0.85);
        ctx.rotate(-ang);
        ctx.fillText(num.toString(), 0, 0);
        ctx.rotate(ang);
        ctx.translate(0, radius*0.85);
        ctx.rotate(-ang);
    }
}
    function drawTime(ctx, radius){
    var now = new Date();
    var hour = now.getHours();
    var minute = now.getMinutes();
    var second = now.getSeconds();
    //hour
    hour=hour%12;
    hour=(hour*Math.PI/6)+(minute*Math.PI/(6*60))+(second*Math.PI/(360*60));
    drawHand(ctx, hour, radius*0.5, radius*0.07);
    //minute
    minute=(minute*Math.PI/30)+(second*Math.PI/(30*60));
    drawHand(ctx, minute, radius*0.8, radius*0.07);
    // second
    second=(second*Math.PI/30);
    drawHand(ctx, second, radius*0.9, radius*0.02);
}

function drawHand(ctx, pos, length, width) {
    ctx.beginPath();
    ctx.lineWidth = width;
    ctx.lineCap = "round";
    ctx.moveTo(0,0);
    ctx.rotate(pos);
    ctx.lineTo(0, -length);
    ctx.stroke();
    ctx.rotate(-pos);
}
    </script>
    
</body>
</html>

راهنمایی برای تغییر ظاهر

در این جا می خواهیم چند راهنمایی ساده ارائه کنیم تا بتوانید ظاهر این ساعت را تغییر بدید.

  1. برای تغییر رنگ پس زمینه شما می توانید در خط 5 و در قسمت style تگ canvas هر رنگ دلخواه را به جای رنگ 363636# قرار بدهید.
  2. برای تغییر رنگ ساعت شما می توانید در خط 27 و در عبارت ctx.fillStyle مقدار را white به رنگ دلخواه تغییر دهید.
  3. برای تبدیل شماره ها به نقطه به جای خط 54 این عبارت را بنویسید:

            ctx.fillText(".".toString(), 0, 0);

  4. برای تغییر سایز ساعت می توانید در خط 5 مقادیر دلخواه را را به جای مقادیر width و height بنویسید.نگران به هم خوردن نظم ساعت نباشید چون اندازه ها به تناسب یکدیگر تغییر می کنند.

آموزش کامل ساخت ساعت عقربه دار در پست های آینده قرار داده می شود.

شما می توانبد فایل آموزش ساخت ساعت عقربه دار دریافت کنید.

نظرات  (۵)

سلام
خیلی عالیه ولی اگه بخایم ساعت یه کشور دیگه رو نشون بدیم چکار باید بکنیم؟
مثلا تو یک صفحه همزمان ساعت سه چار کشور نمایش داده شه
متشکرم
پاسخ:
ممنون احسان جان
از اونجاییکه این کد ما روی سیستم کاربر اجرا میشه و ساعت سیستم کاربرو نشون میده طبعا نمیتونیم چند تا ساعت رو نشون بدیم!!!!!!!!!!!
ولی حقه ای که میشه زد اینه که ما در نظر بگیریم تمام بازدید کنندگان سایت از ایران هستن که منطقه زمانیش +3/30 پس اگه من منطقه زمانی منطقه ی دیگه ای رو بخوام نشون بدم که مثلا +1/30 هستش باید ساعت تهران رو 2 ساعت به عقب بکشم یعنی ساعت تهران 2- 
که این کارو تو کدم نمود میدم
اگه بازم راهنمایی خواستی بگو
واقعا خسته نباشید..ممنونم♡♡♡♡♡
پاسخ:
خواهش میکنم
سلام
ما از این ساعت میخایم توی ربات تلگرام استفاده کنیم؟
چه باید بکنیم ؟
آیا در آنجا هم همان ساعت سیستم را نشان میدهد ؟
و میخواهیم فقط قسمت دایره باشد
پس زمینه حذف شود
پاسخ:
دوست عزیز این ساعت با استفاده از html نوشته شده در صورتی که شما ربات تلگرامو با استفاده از زبان های سمت سرور می نویسید که کاملا به هم بی ربط هستند!!!
خیلی خیلی عاااالی بود فقط توی سایت من ساعت سمت چپ کادرم میافته میخوام وسط کادرم باشه چه کاری باید انجام بدم
پاسخ:
دوست عزیز شما می تونید با CSS اینکارو بکنید:
این کلاس رو به canvas اضافه کنید:
.center
{
margin:auto
}

واقعا ممنونم لطف کردید این کد رو در اختیار هم وطنان قرار دادین

پاسخ:
خواهش می کنم

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">