Tôi có phần tử canvas HTML và đã triển khai một bàn chải ghi lại các sự kiện mousedown
, mousemove
và mouseup
của phần tử canvas. Điều này tất cả hoạt động tốt để vẽ trên vải. Tuy nhiên, tôi không nghĩ rằng tôi thích cách bạn không thể tiếp tục vẽ nếu con chuột của bạn rời khỏi canvas giữa đột quỵ. Nó chỉ cắt nó đi. Nó rất không tha thứ cho người đó và không thân thiện với người dùng theo ý kiến của tôi.Làm thế nào để vẽ bên ngoài của một phần tử khung HTML?
Nếu bạn mở Microsoft Paint và bắt đầu vẽ bằng cọ hoặc hình elip hoặc một cái gì đó, miễn là bạn bắt đầu trong canvas, bạn có thể kéo chuột bất cứ nơi nào trên màn hình và nhập lại canvas bất cứ nơi nào. Nó cũng làm cho nó dễ dàng, ví dụ, để vẽ vòng tròn quý trong góc vì bạn có thể kéo công cụ hình elip ngoài màn hình. Tôi hy vọng điều này có ý nghĩa.
Dù sao thì, tôi đã tự hỏi liệu có cách nào để thực hiện điều này với canvas HTML5 hay không, tôi sẽ thực hiện điều này như thế nào. Người dùng sẽ không bao giờ thực sự nhìn thấy bất cứ thứ gì được vẽ trên đó; nó chủ yếu chỉ là một tính năng cho khả năng sử dụng.
Chỉnh sửa: Sự cố với nhiều giải pháp này là cách xử lý tọa độ. Hiện tại canvas của tôi nằm ở giữa màn hình và phía trên cùng bên trái của canvas là (0, 0)
và phía dưới bên phải là (500, 500)
. Công việc dịch thuật của các tọa độ cũng phải được xem xét.
Chỉnh sửa2: Tôi phát hiện ra rằng dường như bạn có thể rút ra các giới hạn canvas tốt. Ví dụ: bạn có thể cung cấp độ rộng, chiều cao và tọa độ phủ định và phần tử canvas sẽ xử lý nó tốt. Vì vậy, về cơ bản giải pháp có thể sẽ chỉ liên quan đến việc chụp tài liệu của mousemove
và mouseup
và chỉ dịch x
và y
để bắt đầu ở góc trên cùng bên trái của canvas.
bạn có thể nắm bắt được chuột các sự kiện trên cửa sổ chính nó và sau đó ủy quyền cho canvas? – zero298
Có thể thử đăng một ví dụ về những gì bạn hiện có. Sẽ dễ dàng hơn nếu chúng ta không phải tái tạo ví dụ 'hỏng' của chính mình. – duncanhall
Có lẽ bạn cũng có thể làm cho phần tử canvas có chiều rộng và chiều cao đầy đủ của cửa sổ và vùng bản vẽ hơi nhỏ hơn trong canvas? –