Книга: Выразительный JavaScript
Прямоугольники
Прямоугольники
Определите инструмент Rectangle
, заполняющий прямоугольник (см. метод fillRect
из главы 16) текущим цветом. Прямоугольник должен появляться из той точки, где пользователь нажал кнопку мыши, и до той точки, где он отпустил кнопку. Заметьте, что последнее действие может произойти левее или выше первого.
Когда это заработает, вы заметите, что изображение прямоугольника дрожит и его плохо видно. Можете ли вы придумать способ показа прямоугольника во время движения мыши, но чтобы он не выводился на холст, пока кнопка не отпущена?
Если не придумаете, вспомните о стиле position: absolute
, который мы обсуждали в главе 13, который можно использовать, чтобы выводить узел поверх остального документа. Свойства pageX
и pageY
событий мыши можно использовать для точного расположения элемента под мышью, записывая нужные значения в стили left
, top
, width
и height
.
<script>
tools.Rectangle = function(event, cx) {
// Ваш код
};
</script>
<link rel="stylesheet" href="css/paint.css">
<body>
<script>createPaint(document.body);</script>
</body>