2010-06-02 23 views
10

Trang web của tôi sử dụng rộng rãi các bản đồ hình ảnh. Những hình ảnh là các trang từ một bản thảo thời trung cổ. Sự kiện mouseOver của các thẻ AREA có một chú giải công cụ gắn kèm với nó, hiển thị một phiên mã typographic hiện đại của kịch bản cổ cho dòng chuột di chuột qua.Lập bản đồ các sự kiện chuột của iPad Safari để chạm vào các sự kiện trong bản đồ hình ảnh

Tôi vừa kiểm tra trang web của mình trên iPad tại cửa hàng Apple. Mặc dù vậy, iPad có nhiều niềm vui khi sử dụng, tôi tự hỏi về việc lập bản đồ của Apple về các sự kiện chuột cho các sự kiện chạm ngón tay. Apple có lẽ đã có một lý do chính đáng để làm những việc như họ đã làm, nhưng sự lựa chọn của họ có vẻ phản trực giác và quá phức tạp với tôi.

Cụ thể, trình duyệt Safari của iPad rõ ràng đã phản hồi cả fingerDown và fingerTap và theo các cách khác nhau. Khi tôi khai thác một khu vực của bản đồ hình ảnh, chú giải công cụ có dây cho sự kiện di chuột qua thẻ AREA được hiển thị và vẫn hiển thị cho đến khi tôi nhấn vào một nơi khác. Khi tôi giữ ngón tay của tôi xuống trên một khu vực của bản đồ hình ảnh, khu vực đã thay đổi màu sắc. Vì vậy, nếu iPad Safari phát hiện một trình xử lý sự kiện mouseOver, nó thực thi mã mouseOver trên click | tap và dường như ngăn sự kiện "click" lan truyền, để nếu bạn cũng có thứ gì đó được kết nối với sự kiện click, nó không hoạt động? Có đúng không?

Nhưng quan trọng hơn, tại sao ngón tay không phải là đối tượng iPad-Safari cho mouseOver? FingerDown dường như là một ứng cử viên có khả năng hơn là Tap khi ánh xạ sự kiện mouseOver. điều tôi dự kiến ​​sẽ có được ánh xạ theo cách này:

MouseClick : FingerTap (i.e. finger down and then immediately up) 
MouseOver : FingerDown (finger down and stays on the spot) 

Nếu Apple đã xử lý fingerDown như là đại diện cho mouseover, sau đó các tooltip có thể được hiển thị trên FingerDown và làm vô hình một lần nữa trên fingerUp, đó sẽ là đối tác để mouseOut.

Có lẽ ai đó có thể khai sáng cho tôi về quá trình suy nghĩ đã đưa Apple đến những sự kiện ánh xạ chuột để chạm cụ thể này? Cảm ơn

Trả lời

0

Tôi đã tìm thấy một số thông tin rằng một phần giải thích các hành vi được mô tả ở trên:

http://developer.apple.com/safari/library/technotes/tn2010/tn2262/index.html

Xem phần 5, đặc biệt.

Dường như chạm giữ là "chọn" khu vực bản đồ hình ảnh. Liên kết ở trên cho biết rằng việc chọn người dùng có thể bị tắt nhưng không thể nói điều gì sẽ xảy ra khi cử chỉ chạm + giữ được sử dụng trên phần tử mà người dùng chọn đã bị tắt. Nó sẽ là tuyệt vời nếu nó có thể trở thành đối tác của mouseOver trong những trường hợp đó.

10

Tôi đã thực hiện một số nghiên cứu cụ thể khi iPad kích hoạt các sự kiện "di chuột" so với các sự kiện "nhấp". Khi người dùng chạm vào bất cứ đâu trên trang, iPad sẽ kích hoạt sự kiện "di chuyển chuột" đầu tiên như thể người dùng vừa đặt con trỏ chuột vào vị trí đó. Nó cũng kích hoạt sự kiện "di chuột" trên phần tử cuối cùng đã tập trung. Sau đó, trình duyệt, theo như tôi có thể biết, kiểm tra xem có bất kỳ thay đổi nào đối với DOM xảy ra do kết quả của sự kiện gọi lại "di chuyển chuột" hay không.

Nếu đã có thay đổi đối với DOM, trình duyệt không kích hoạt sự kiện "nhấp". Nếu người dùng chạm vào cùng một yếu tố lần thứ hai thì trình duyệt sẽ kích hoạt sự kiện "nhấp" nhưng không kích hoạt sự kiện "di chuột qua" khác. Mặt khác, nếu sau khi người dùng chạm vào thành phần lần đầu tiên và DOM không thay đổi sau khi sự kiện "di chuột" hoàn tất, thì trình duyệt sẽ kích hoạt sự kiện "nhấp" mà không phải đợi lần nhấn thứ hai .

Các vấn đề liên quan