JavaScript. Подробное руководство, 6-е издание
Шрифт:
var minhand = document.getElementById("minutehand");
var hourhand = document.getElementByldC'hourhand”);
// Установить в них SVG-атрибут для перемещения по циферблату
minhand.setAttribute("transform", "rotate(" + minangle + ",50,50)");
hourhand.setAttribute("transform", "rotate(" + hourangle + ”,50,50)");
// Обновлять
показания часов 1 раз в минуту setTimeout(updateTime, 60000);
}
</script>
<style>
/* Все следующие CSS-стили применяются к SVG-элементам, объявленным ниже */
#clock { /* общие стили для всех элементов часов */
stroke: black; /* черные линии */
stroke-linecap: round; /* с закругленными концами */
fill: #ееf; /* на светлом, голубовато-сером фоне */
}
#numbers { /* стиль отображения цифр на циферблате */
font-family: sans-serif;
font-size: 7pt;
font-weight: bold;
text-anchor: middle;
stroke: none; fill: black;
}
</style>
</head>
<body onload="updateTime">
<!-- viewBox - система координат, width и height - экранные размеры -->
<svg id="clock" viewBox="0 0 100 100” width="500" height="500">
<defs> <!-- Определить фильтр для рисования теней -->
<filter id="shadow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur in="SourceAlpha" stdDeviation="1" result="blur" />
<fe0ffset in="blur" dx="1" dy="1" result="shadow" />
<feMerge>
<feMergeNode in="SourceGraphic"/xfeMergeNode in="shadow"/>
</feMerge>
</filter>
</defs>
<circle id="face" cx="50" cy="50" r="45"/> <!-- циферблат -->
<g id="ticks"> <!-- 12 часовых меток -->
<line x1='50' y1='5.000' x2='50.00‘ y2='10.00'/>
<line x1='72.50' y1='11.03' x2=’70.00' y2='15.36'/>
<1ine x1='88.97' y1='27.50' x2='84.64' y2='30.00'/>
<line x1='95.00' y1='50.00' x2='90.00' y2='50.00'/>
<line
х1 = ‘88. 97' у1 = '72. 50' х2='84.64' у2='70.00'/>
<line х1 = '72. 50' у 1 ='88. 97' х2='70.00' у2='84.64'/>
<line х1 = '50.00’ у 1 ='95.00' х2='50.00' у2='90.007>
<line х1 = '27.50' у1 = '88.97' х2='30.00' у2='84.64'/>
<line х1 = ' 11.03' у1 = '72. 50' х2=' 15.36' у2='70.00'/>
<line х1='5.000' у1='50.00' х2='10.00' у2='50.00'/>
<line х1='11.03' у1='27.50' х2='15.36' у2='30.00'/>
<line х1='27.50' у1='11.03' х2='30.00' у2='15.36/>
</g>
<g id="numbers"> <!-- Числа в основных направлениях -->
<text х="50" y=”18">12</text>
<text х="85" y="53">3</text>
<text х="50" y="88">6</text>
<text х="15" y="53">9</text>
</g>
<!-- Нарисовать стрелки, указывающие вверх. Они вращаются сценарием.
– ->
– ->
<g id=''hands" filter="url(#shadow)"> <!-- Добавить тени к стрелкам -->
<line id="hourhand" x1="50" у 1="50" х2="50" у2=''24"/>
<line id="minutehand" х1="50" у1="50" х2="50" у2="20”/>
</g>
</svg>
</body>
</html>
21.4. Создание графики с помощью элемента <canvas>
Элемент
<canvas>
не имеет собственного визуального представления, но он создает поверхность для рисования внутри документа и предоставляет сценариям на языке JavaScript мощные средства рисования. Элемент <canvas>
стандартизован спецификацией HTML5, но существует дольше его. Впервые он был реализован компанией Apple в броузере Safari 1.3 и поддерживался броузерами Firefox, начиная с версии 1.5, и Opera, начиная с версии 9. Он также поддерживается всеми версиями Chrome. Элемент <canvas>
не поддерживался броузером IE до версии IE9, но он с успехом имитировался в IE6, 7 и 8 с помощью свободно распространяемого проекта ExplorerCanvas, домашняя страница которого находится по адресу http://code.google.eom/p/explorercanvas/.
Поделиться с друзьями: