Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Таймер отсчета в виде круга (https://javascript.ru/forum/events/42356-tajjmer-otscheta-v-vide-kruga.html)

make_it 23.10.2013 10:37

Таймер отсчета в виде круга
 
есть ли какие нибудь примеры реализации таймера обратного отсчета, в виде круга... к примеру
https://www.dropbox.com/s/ye3hq5k8l3...1%8C%D1%83.PNG

Есть скидка, которая со временем "тает" так сказать

cyber 23.10.2013 16:30

make_it,
используйте canvas.

a_l 23.10.2013 18:01

В принципе, canvas не обязателен. Обычный круг же, можно через border-radius сделать. Вообще, погуглите "css pie timer" - много реализаций.

рони 23.10.2013 21:00

Круговой таймер на канвас
 
make_it,
:) :write:
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
</head>
<body>
<canvas id="myCanvas" ></canvas>
<script>
  var myCanvas = document.getElementById("myCanvas"),
    context = myCanvas.getContext("2d"),
    timeLimit = 15E3,
    timeStart = (new Date).getTime(),
    canvasSize = 200,
    lineWidth = 24,
    drawX = drawY = radius = canvasSize / 2;
    radius -= lineWidth / 2;
    myCanvas.width = canvasSize;
    myCanvas.height = canvasSize;

function go() {
    context.beginPath();
    context.lineWidth = lineWidth;
    context.lineCap = "round";
    context.strokeStyle = "rgb(0, 255, 0)";
    var a = ((new Date).getTime() - timeStart) / timeLimit;
    context.clearRect(0, 0, canvasSize, canvasSize);
    context.font = '24px "Tahoma"';
    context.fillText((100 - a*100)|0, radius, drawY);
    context.arc(drawX, drawY, radius, -Math.PI / 2 + 2 * Math.PI * a, -Math.PI / 2, !1);
    context.stroke();
    1 < a && (timeStart = (new Date).getTime());
    timer = window.setTimeout(go, 50)
}
go();
</script>
</body>
</html>


Часовой пояс GMT +3, время: 20:30.