В света на уеб разработката HTML5 Canvas Element се очертава като мощен инструмент за създаване на интерактивни графики, анимации и игри. Едно често срещано изискване при работа с платното е да се получи позицията на мишката спрямо района на платното. Това позволява на разработчиците да създават по -ангажиращи и отзивчиви потребителски изживявания. Като доставчик на платно разбирам значението на тази функционалност и ще ви преведе през процеса в тази публикация в блога.
Разбиране на основите на платното и събитията на мишките
Преди да се потопим в позицията на мишката на платното, нека първо да разберем основните понятия на елемента на платното и събитията на мишката в JavaScript.
HTML5 Canvas Element предоставя начин да нарисувате графики на уеб страница с помощта на JavaScript. Това е по същество правоъгълна зона на страницата, където можете да използвате различни методи за рисуване, за да създадете форми, линии, текст и други. За да започнете да използвате платното, трябва да създадете a<Canvas>Елемент във вашия HTML файл и след това достъп до него с помощта на JavaScript.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Canvas Mouse Position</title> </head> <body> <canvas id="myCanvas" width="800" височина = "600"> </anvas> <cript> const canvas = document.getElementById ('mycanvas'); const ctx = canvas.getContext ('2d'); </script> </ody> </html>
В горния код първо създаваме платно елемент сidнаmycanvasи задайте своята ширина и височина. След това, в кода на JavaScript, получаваме препратка към елемента на платното, използвайкиdocument.getElementByIDи да получи своя 2D контекст на рисуване с помощта наgetContext ('2d').
Събитията на мишката в JavaScript ни позволяват да открием, когато потребителят взаимодейства с мишката на уеб страница. Някои общи събития на мишката включватMousedown,Mouseup,МусемовиЩракнете. Можем да прикачим слушателите на събитията към елемента на платното, за да открием тези събития и съответно да изпълняваме действия.
Получаване на позицията на мишката на платното
За да получим позицията на мишката върху платното, трябва да изчислим позицията на мишката спрямо горния ляв ъгъл на елемента на платното. Позицията на мишката обикновено се дава под формата на(X, y)координати.


Следните стъпки очертават процеса на получаване на позицията на мишката на платното:
- Прикрепете a
МусемовСлушател на събитието на елемента на платното: Това ще ни позволи да открием, когато потребителят премества мишката върху платното. - Вземете позицията на мишката спрямо изглед: Можем да използваме
clientXиклиентСвойства на обекта на събитието на мишката, за да се получи позицията на мишката спрямо изглед. - Вземете позицията на елемента на платното спрямо изглед: Можем да използваме
GetBoundingClientRect ()Метод за получаване на позицията и размерите на елемента на платното спрямо изглед. - Изчислете позицията на мишката спрямо платното: Извадете позицията на елемента на платното от позицията на мишката спрямо изгледът, за да получите позицията на мишката спрямо платното.
Ето кода на JavaScript за изпълнение на горните стъпки:
const canvas = document.getElementById ('mycanvas'); const ctx = canvas.getContext ('2d'); canvas.addeventListener ('mouseMove', функция (събитие) {// Вземете позицията на мишката спрямо Viewport const mousex = event.clientx; const mousey = event. rect.top;
В горния код прикачваме aМусемовСлушател на събитието на елемента на платното. Вътре във функцията за слушане на събития първо получаваме позицията на мишката спрямо изглед на изглед, използвайкиEvent.ClientXиEvent.Clienty. След това получаваме позицията на елемента на платното спрямо изгледът, използвайкиcanvas.getBoundingClientRect (). И накрая, ние изваждаме позицията на елемента на платното от позицията на мишката спрямо изгледът, за да получим позицията на мишката спрямо платното.
Работа с мащабиране и трансформира
В някои случаи можете да прилагате мащабиране или трансформиране в елемента на платното. Това може да повлияе на изчисляването на позицията на мишката върху платното. За да се справите с мащабирането и трансформирането, трябва да вземете предвид текущата матрица за трансформация на платното.
Следващият код показва как да обработвате мащабиране и трансформира, когато получавате позицията на мишката на платното:
const canvas = document.getElementById ('mycanvas'); const ctx = canvas.getContext ('2d'); // прилагайте мащабна трансформация към Canvas CTX.Scale (2, 2); canvas.addeventListener ('mouseMove', функция (събитие) {// Вземете позицията на мишката спрямо Viewport const mousex = event.clientx; const mousey = event. rect.top; canvasmousey + inversematrix.e;
В горния код първо прилагаме мащабна трансформация към платното с помощта наCTX.Scale (2, 2). След това, когато получаваме позицията на мишката на платното, изчисляваме обратната на текущата матрица за трансформация, използвайкиctx.getTransform (). invertels (). Накрая прилагаме обратната трансформация в позицията на мишката, за да получим правилната позиция върху платното.
Практически приложения за получаване на позицията на мишката на платното
Получаването на позицията на мишката на платното има много практически приложения в уеб разработката. Ето няколко примера:
- Интерактивна графика: Можете да използвате позицията на мишката, за да създадете интерактивна графика, като например да позволите на потребителите да кликнат върху форми или да плъзгат обекти върху платното.
- Игри: В игрите позицията на мишката може да се използва за контрол на движението на герои или за извършване на действия, като снимане или събиране на елементи.
- Приложения за рисуване: Можете да използвате позицията на мишката, за да създадете приложения за рисуване, където потребителите могат да рисуват върху платното, като преместят мишката.
Нашите продукти на платно
Като доставчик на платно, ние предлагаме широка гама от висококачествени продукти на платно за различни приложения. Нашите продукти включватПровала на едро евтина цена 65%полиестер 35%памук t/c 65/35 риза тъкани тъкани тъкани,Полиестер и памучна тъкан за палаткаиМаслена боядисана тъкан. Нашите платни тъкани са изработени от висококачествени материали и се предлагат в различни цветове и модели.
Свържете се с нас за закупуване
Ако се интересувате от нашите продукти на Canvas или имате въпроси относно получаването на позицията на мишката в платното, моля, не се колебайте да се свържете с нас за закупуване и по -нататъшни дискусии. Ние се ангажираме да ви предоставим най -добрите продукти и услуги.
ЛИТЕРАТУРА
- HTML5 Canvas Урок: https://developer.mozilla.org/en-us/docs/web/api/canvas_api/tutorial
- JavaScript Mouse Събития: https://developer.mozilla.org/en-us/docs/web/api/mouseevent
- Трансформации на Canvas: https://developer.mozilla.org/en-us/docs/web/api/canvasrenderingContext2d/setTransform
